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

誰能解釋一下,我看不懂。。謝謝

<script type="text/javascript">

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

                 }

             };

         }


正在回答

1 回答

嗯,给你从点和面分析一下:

  • 从面来看,这个脚本的目的是想给一个无序列表里面的div添加类名

  • 从点来看,这里有一课文档树(不知道文档树是什么无所谓,想象一下就好了),最高层的是tabs,是祖先,然后tabs生了ul,ul生了li,li最后生了div,他们两两之间是父子关系,然后前面那个"var oXX"的目的是将他们一家全部包装成一个对象,这样他们才能调用方法。后面的oLis.length就很容易理解了,li同样也组成了一棵树,所谓的树中树了,不过li之间不是父子关系哦,他们是兄弟关系,oLis.length有多大就取决于你写了多少个li了,然后通过一个for循环给每个li编号,贴上i标签,".onclick"就是通过点击的方法为li里面的div加上类名,整个程序到此就结束了

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

慕无忌7023775

for(var i= 0,len = oLis.length;i<len;i++){ oLis[i].index = i; 这个不要 把 oLis[i].index = i直接写在第二个for里面为什么不行啊
2016-01-28 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

誰能解釋一下,我看不懂。。謝謝

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