慕无忌7023775
2016-01-28 18:57
oLis[i].onclick = function() {
for(var i= 0;i<oLis.length;i++){
oLis[i].className = "";
oDivs[i].className = "hide";
oLis[i].index = i;
}
this.className = "on";
oDivs[this.index].className = "";
}
};
这样写为什么不行啊?跟下面的正确的 有什么不同啊?
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 = "";
}
};
答案里的最外层的循环:1、强制给数组中的每个对象一个索引,这样鼠标经过的时候才能获取经过的是哪个<li>;2、给每个 oLis[i].onclick定义一个dom事件
你把oLis[i].index = i;这句放在循环中没有意义,这个循环是把div隐藏的,并不能通过这个i知道该显示哪个
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题