【发布时间】:2023-03-20 19:10:01
【问题描述】:
以下我的 javscript 的一部分(使用 jquery)。
list = ['a', 'b', 'c'];
for(var i = 0 ; i< list.length ; i++) {
$("<a>click here</a>").
click(function(){
foo(list[i]);
}).
appendTo('#sometag');
}
function foo(val) {
console.log(val);
}
无论您点击哪个标签,总是打印 c。如何打印正确的值???
似乎它正在使用 i=3 的最后一个值,因此总是评估 oc
【问题讨论】:
-
旁注,
int i = 0是错误的。试试var i = 0或只是i = 0。 -
从技术上讲,您上面的代码甚至没有记录“c”,它记录了“未定义”。 jsfiddle.net/j08691/9Th9G
-
老兄这只是一个示例代码。人家已经回答了。相反,如果发现高于此的错误,请在此下方放置一些时间。
-
老兄,按照你说的做的发布代码。当您发布不准确的代码时,它会浪费每个人的时间来调试您的代码。
标签: javascript jquery closures