点击事件在 循环后产生,此时i为4, 产生闭包
解决方案使用立即执行函数、
html部分
<ul>
<li>a</li>
<li>a</li>
<li>a</li>
<li>a</li>
</ul>
js部分
window.onload = function () {
var lis = document.getElementsByTagName('li');
for (var i = 0; i < lis.length; i++) {
(function (i) {
lis[i].addEventListener('click', function () {
console.log(i)
}, false);
}(i))
}
}
根据渡一教育总结