javascript - 无法在 for 循环中检索数组值

标签 javascript jquery arrays for-loop

我有一个快速的新手问题:我正在尝试检索数组的值并使用 jQuery“单击”将它们打印到 html 元素。但是,我似乎无法检索数组元素。对于每个点击的项目,它应该在索引 i 处获取数组元素,因此 #item-0 应该获取 "red" 的值,等等.

控制台记录 undefined

var descriptions = ["red", "blue", "green", "purple", "white", "black"];

for (var i = 0; i < descriptions.length; i++) {
  $("#item-" + i).on("click", function() {
    var currentDescr = descriptions[i];
    console.log(currentDescr);

    $("#footer-text").html(currentDescr);
  });
};
.as-console-wrapper{top:0;max-height:100%;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

如有任何帮助,我们将不胜感激。

最佳答案

循环在事件触发之前完成,导致 i 的值不正确...试试这个:

var descriptions = ["red","blue","green","purple","white","black"];


for (var i = 0; i < descriptions.length; i++) {

    (function(i){
        $("#item-"+i).on("click", function(){

           var currentDescr = descriptions[i];
           console.log(currentDescr);
           $("#footer-text").html(currentDescr);

       });
    }(i));
};

关于javascript - 无法在 for 循环中检索数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41612578/

相关文章:

javascript - 显示单元测试的图表

javascript - Angular.js googlemap 信息窗口按钮单击未传递值?

javascript - 打开对话框以响应链接触发器时,如何保留页面滚动位置?

jquery - 调用jQuery文档准备的不同方法的效率

c - 可以在声明后填充结构数组吗?

c# - 如果 A 和 B 是枚举类型,为什么我可以将 A[] 转换为 B[]?

javascript - 递归循环对象树

javascript - 为什么我要使用 RxJS interval() 或 timer() 轮询而不是 window.setInterval()?

javascript - GraphQL+ react + Apollo :Unable to fetch data from server to client

arrays - 使用转置函数将数组粘贴到范围中