在编写js代码时,有一个问题基本上人人都会遇到,那就是用for循环为一组DOM对象绑定事件响应回调,每个事件回掉函数中i的值都是DOMlist.length。
上代码:
var btns = document.getElementsByTagName('button');
for(var i = 0;i<btns.length;i++){
btns[i].onclick = function () {
alert(i);
}
}
如果为3个按钮绑定事件,不管点击哪个都会弹出 3,这显然是不符合我们的需求的
具体的原因我们下面详叙,先说两种我们经常用到的解决方法:
1.为每个DOM对象添加一个index属性,记录当前的i值