我的代码是:
for (i = 0; i < 3; i++) {
elem[i].click(function(event) { alert(i); });
}
不幸的是,这不起作用。不知道如何使i
与i
中的elem[i]
保持同一警报。
谢谢!
答案 0 :(得分:0)
您应该使用let
来定义变量i
。与var
不同,let
定义的变量是块作用域。因此,每次迭代后都不会覆盖它们。
for (let i = 0; i < 3; i++) {
elem[i].click(function(event) { alert(i); });
}
顺便说一下,当ES6可用时,在这种情况下使用闭包通常是个坏主意。这有点矫枉过正。