在 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"));
});