Javascript jQuery值在html中作为id传递
可以在Html中将jQuery变量作为Id传递。比如说Javascript jQuery值在html中作为id传递,javascript,jquery,html,Javascript,Jquery,Html,可以在Html中将jQuery变量作为Id传递。比如说 $(document).on('click', '.addvideo', function () { var dynamicID = $(this).attr('id'); }); 这里我得到了当前点击的id值“dynamicID”。我想把这个值传递给另一个变量,如下所示 $('#'+dynamicID).change(function(){ alert('hi'); }); 我像上面那样试过。但我得到错误“
$(document).on('click', '.addvideo', function () {
var dynamicID = $(this).attr('id');
});
这里我得到了当前点击的id值“dynamicID”。我想把这个值传递给另一个变量,如下所示
$('#'+dynamicID).change(function(){
alert('hi');
});
我像上面那样试过。但我得到错误“引用错误:未定义dynamicID”。如何解决此问题?在addvideo click事件中写入更改事件,则只有它将绑定:
$(document).on('click', '.addvideo', function () {
var dynamicID = $(this).attr('id');
$('#'+dynamicID).change(function(){
alert('hi');
});
});
该错误是由于您试图从变量
dynamicID
不可用的地方访问该变量而导致的
JS中的变量只能在定义它们的函数中访问,换句话说,就是您编写var something='value'
的部分
因此,在您的示例中,变量dynamicID
可在该函数内的任何位置使用,但不能在其外部使用
$(document).on('click', '.addvideo', function () {
var dynamicID = $(this).attr('id');
});
console.log(dynamicID) //ReferenceError: dynamicID is not defined
当您尝试在函数外部访问dynamicID
时,您将得到一个错误,因为它基本上不存在
因此,您可以将使用dynamicID
的函数移动到定义它的函数中:
$(document).on('click', '.addvideo', function () {
var dynamicID = $(this).attr('id');
$('#'+dynamicID).change(function(){
alert('hi');
});
});
或者,要在其他地方访问变量,可以在函数外部定义它,在函数中为它赋值,然后从其他地方访问它
var dynamicID;
$(document).on('click', '.addvideo', function () {
dynamicID = $(this).attr('id');
});
console.log(dynamicID) //this will log the ID value provided the element has been clicked
出现该错误的原因是,您处于不同的作用域中,这意味着不会定义dynamicID。尝试将其添加到相同的范围,如下所示:
$(document).on('click', '.addvideo', function () {
var dynamicID = $(this).attr('id');
$('#'+dynamicID).change(function(){
alert('hi');
});
});
我不知道你打算如何获取动态Id,但想象一下你正试图从文本框中获取它。我会这样做的
$(文档).ready(函数(){
var dynamicID='#'+$('#yada').val();
$(dynamicID).on('input',函数(e){
警报(“hi”);
});
});代码>
它位于完全不同的范围内,这就是您遇到问题的原因。我的问题是:为什么要重新选择已有的元素?您可以只存储对DOM节点的引用,而不必重新选择。假设id是唯一的,这不是简单的$(this)。更改(…)
w/o提取id并按id选择相同的元素吗?