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

求解~~~~~~

为什么要设定index属性,为什么最后的div一定要调用this.index属性,而直接使用i却没反应?

正在回答

3 回答

i是索引值,p[i]就是所有p元素,那你这里就是给所有的p变量全部都做classname=""的操作,li[i].index=i是给index赋值为i,这里你用a,b,c,d什么的都可以,i就是循环出来的一个数组,从零开始,等于元素的length-1

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

页面加载时,for循环已经结束,因此i在事件触发的时候i已经是定值

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

window.onload=function(){
        var oTab = document.getElementById("tabs")
        var li = document.getElementsByTagName("li");
        var p = oTab.getElementsByTagName("p");//oTabs.get...是为了定义className作用对象为id为tabs下的所有文本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 = "";
                p[n].className = "hide";
            }
            this.className = "on";//再对点击事件添加相应的属性
            p[this.index].className = "";//通过之前的index编号绑定的指定div
            }
        }
    }

倒数第四行为什么要构建li[i].index=i;而且倒数第四行还要用p[this.index]。为什么把li[i].index=i删掉,倒数第四行改成p[i]不阔以呢?


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

举报

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

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

进入课程

求解~~~~~~

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