qq_无猜_0
2015-05-13 17:26
window.onload = function() {
var oUl1 = document.getElementById("ul1");
var aLi = oUl1.getElementsByTagName("li");
var oDiv = document.getElementById("tab-list");
var aDiv = oDiv.getElementsByTagName("div");
for(var i = 0; i < aLi.length; i++) {
aLi[i].index = i;
aLi[i].onmouseover = function() {
for(var i = 0; i < aLi.length; i++) {
aLi[i].className = "";
}
this.className = "active";
for(var j = 0; j < aDiv.length; j++) {
aDiv[j].className = "hide";
}
aDiv[this.index].className = "show";//为什么不能直接用aDIV[i].className = "show";
}
}
}
这是排名第一的答案,有几点不明白
1、为什么不能直接用aDIV[i].className = "show";而非要另外用一个index,前者我试过 不行 怀疑是i的作用域问题,也不知道对不对,求解答
2、另外aLi[i].index = i;这种写法有点不明白,是元素的数据结构就有index这一项吗?还是别的原因?任何元素都可以这样吗?
我也是这里面的js 不懂 楼主弄明的话 可以给我讲解一下 谢谢
我只知道 aLi[i].index=i 这个写法的意思是给 aLi[i] 自定义一个属性并赋值,但不清楚为啥这样用。对于问题1,我也不大理解。
建议题主修改一下问题的标题,这样看不点开完全不知道你在说什么。你说呢。
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题