this的问题

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]”代替?


航包包
浏览 1050回答 1
1回答

千秋此意

 li[i].index = i;和为什么要写这句一样的原因,onclick事件触发时循环已经执行完毕,此时全局变量 i = li.length也就是说如果你把 this.className = "on" 里的this换成了 li[i] 的话,就相当于换成了 li[li.length]
打开App,查看更多内容
随时随地看视频慕课网APP