为了账号安全,请及时绑定邮箱和手机立即绑定

第十章编程练习问题

window.onload = function(){
             var oTab = document.getElementById("tabs");
             var oUl = oTab.getElementsByTagName("ul")[0];
             var oLis = oUl.getElementsByTagName("li");
             var oDivs= oTab.getElementsByTagName("div");

             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 = "";
                 }
             };
         }

这个里面的.index是什么含义?

正在回答

1 回答

.index是自定义的属性,li标签本身是没有index属性的;

楼主的代码里 oLis[i].index = i;这句里用index存放了i值;

所以后面 oDivs[this.index].className = "";这里this.index才能拿到值;

你看下我写的测试代码

开始的时候index本来是未定义的

赋值之后才有了值;

<html>
<head>
    <script type="text/javascript">
        function test(){
            var oUl = document.getElementsByTagName("ul")[0];
            var oLis = oUl.getElementsByTagName("li");
            alert(oLis[1].index);        //这里出来的是undefined
            oLis[1].index = 1;
            alert(oLis[1].index);        //这里出来的是赋予的值
        }
    </script>
</head>
<body>
    <input type="button" onclick="test()" value="test">
    <ul>
        <li>li1</li>
        <li>li2</li>
        <li>li3</li>
    </ul>
</body>
</html>



0 回复 有任何疑惑可以回复我~
#1

陈水 提问者

非常感谢!
2015-10-31 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468188    人
  • 解答问题       21891    个

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

进入课程

第十章编程练习问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信