问答详情
源自:10-1 编程挑战

好多不懂 求解答 关于元素隐藏的

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这一项吗?还是别的原因?任何元素都可以这样吗?



提问者:qq_无猜_0 2015-05-13 17:26

个回答

  • 程序爱好者11
    2015-06-05 17:31:39

    我也是这里面的js 不懂   楼主弄明的话 可以给我讲解一下  谢谢

  • muge10
    2015-05-14 19:48:55

    我只知道 aLi[i].index=i 这个写法的意思是给 aLi[i] 自定义一个属性并赋值,但不清楚为啥这样用。对于问题1,我也不大理解。

    建议题主修改一下问题的标题,这样看不点开完全不知道你在说什么。你说呢。