小雨4359834
2016-12-05 22:51
for(var i= 0,len = oLis.length;i<len;i++){
oLis[i].index = i;
oLis[i].onclick = function() {
for(var n= 0;n<len;n++){
oLis[n].className = "";
oDivs[n].className = "hide";
}
this.className = "on";
oDivs[this.index].className = "";
}
能给我解释一下这个代码吗?,看得不是很明白啊
主要还是oLis[i].index = i这句吧?
这里for循环内部有个click事件,如果不去保存i值,那么在页面加载时会先加载for循环,这时click事件并没有触发,因此加载好for循环后,i值已经为oLis.length,这时如果触发click事件,i值就是定值(为oLis.length),但如果提前在页面加载循环时将每一个i值保存在每一个oLis的index属性上,那么在click事件内部,再去调用当前事件的index属性,就是在页面加载是保存下来对应的i值了
好,明白了,谢谢哈,你这么一说我就想通了,哈哈
for(var n= 0;n<len;n++){
oLis[n].className = "";
oDivs[n].className = "hide";
}
this.className = "on";
oDivs[this.index].className = "";
}
我不明白为啥?
oLis[n].className = ""; oDivs[n].className = "hide"; 这两句,前面设置为空是什么意思,能讲下吗
JavaScript进阶篇
468192 学习 · 21891 问题
相似问题