for(var i=0; i<li.length; i++){ li[i].index = i; li[i].onclick = function(){ for(var n=0;n<li.length;n++){ li[n].className = ""; div[n].className = "hide"; } this.className = "on"; div[this.index].className = ""; } } this.className = "on"; 中的this是不是指“li[i]”呢?为啥用不了“li[i]”代替?
1 回答
千秋此意
TA贡献158条经验 获得超187个赞
li[i].index = i;
和为什么要写这句一样的原因,
onclick事件触发时循环已经执行完毕,此时全局变量 i = li.length
也就是说如果你把 this.className = "on" 里的this换成了 li[i] 的话,就相当于换成了 li[li.length]
- 1 回答
- 0 关注
- 1052 浏览
添加回答
举报
0/150
提交
取消