在 jQuery 中使用 for 的错误
Bug with using for in jQuery
这是我的代码:
$(document).on("click", "#farm_0", function(){
console.log($("#farm_0").attr("my_id"));
});
$(document).on("click", "#farm_1", function(){
console.log($("#farm_1").attr("my_id"));
});
控制台显示了良好的价值。
但是当我尝试使用这个时:
for(var i=0; i < 2; i++)
{
$(document).on("click", "#farm_"+i+"", function(){
console.log($("#farm_"+i+"").attr("my_id"));
});
}
按钮将起作用,但控制台仅显示最后一个值或未定义。
这有什么问题吗?
您忘记了 #farm
后的下划线:
$(document).on("click", "#farm"+i+"", function(){
仅供参考:我认为您不应在此处使用 for 循环。
尝试为您希望可点击的所有元素添加一个 class 名称。然后只为该元素添加 1 个事件侦听器,并在事件侦听器内使用 $(this)
来定位单击的按钮。像这样:
$(document).on("click", ".farm", function(){
console.log($(this).attr("my_id"));
});
或
$(".farm").on("click", function(){
console.log($(this).attr("my_id"));
});
这是我的代码:
$(document).on("click", "#farm_0", function(){
console.log($("#farm_0").attr("my_id"));
});
$(document).on("click", "#farm_1", function(){
console.log($("#farm_1").attr("my_id"));
});
控制台显示了良好的价值。 但是当我尝试使用这个时:
for(var i=0; i < 2; i++)
{
$(document).on("click", "#farm_"+i+"", function(){
console.log($("#farm_"+i+"").attr("my_id"));
});
}
按钮将起作用,但控制台仅显示最后一个值或未定义。 这有什么问题吗?
您忘记了 #farm
后的下划线:
$(document).on("click", "#farm"+i+"", function(){
仅供参考:我认为您不应在此处使用 for 循环。
尝试为您希望可点击的所有元素添加一个 class 名称。然后只为该元素添加 1 个事件侦听器,并在事件侦听器内使用 $(this)
来定位单击的按钮。像这样:
$(document).on("click", ".farm", function(){
console.log($(this).attr("my_id"));
});
或
$(".farm").on("click", function(){
console.log($(this).attr("my_id"));
});