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

大神们,请从for那开始解释代码原理?谢谢!

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

                 }

             };

         }

    </script>


正在回答

2 回答

http://img1.sycdn.imooc.com//582085e8000180bc09220293.jpg希望有所帮助

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

qq_谜离_03319966

这里的this可以换成oLis[i]吗 为什么
2016-11-16 回复 有任何疑惑可以回复我~
for(var i= 0,len = oLis.length;i<len;i++){  //for遍历oLis
                 oLis[i].index = i;          //保存每一个i值到对应的每一个oLis上
                 oLis[i].onclick = function() { //点击
                     for(var n= 0;n<len;n++){    //再次对oLis遍历
                         oLis[n].className = "";  //所有oLis的class为空
                         oDivs[n].className = "hide";  //所有oDiv的class为hide
                     }
                     this.className = "on";      //当前点击的oLis 的class为on
                     oDivs[this.index].className = "";  //当前点击的oLis的i值所对应的oDivs的class为空
                 }
             };
         }


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

qq_谜离_03319966

这里的this可以换成oLis[i]吗 为什么
2016-11-16 回复 有任何疑惑可以回复我~
#2

stone310 回复 qq_谜离_03319966

不可以,因为i已经是个定值,相当于oLis.length
2016-11-16 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

大神们,请从for那开始解释代码原理?谢谢!

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