为什么要这样做li[i].index = i; 使用getElementsByTagName返回的不就已经是一个数组了吗 为什么还要增加编号

来源:10-1 编程挑战

风谷菌

2016-03-15 09:29

  window.onload=function(){
        var otab=document.getElementById("tab");
        var  li=document.getElementsByTagName("li");
        var div=otab.getElementsByTagName("div");
     for(var i=0;i<li.length;i++){//获取所有i编号的元素
            li[i].index = i;  //定义一个index属性对li进行编号
            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 = "";//通过之前的index编号绑定的指定div
            }
        }
    }

写回答 关注

1回答

  • 慕斯卡3836492
    2016-03-15 18:33:02
    已采纳

    设置index就是给菜单栏的每一项编号 比如你点击了菜单栏的第二项 然后通过this.index返回index的值2 然后用div[this.index]来设置className

    不知所语

    这里了的this.index是i赋值的,为什么不直接用div[i]就行了 要这么麻烦呢

    2016-05-07 16:31:00

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468195 学习 · 21891 问题

查看课程

相似问题