为什么要用两个for循环呀,选项卡切换

来源:10-1 编程挑战

qq_随风飘_1

2017-02-06 16:02

<script type="text/javascript">

         

    // JS实现选项卡切换

         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回答

  • 大猪哥
    2017-02-06 23:09:32
    已采纳

    <script type="text/javascript">

             

        // JS实现选项卡切换

             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;//给oLi添加索引号0,1,2对应房产,家具,二手房;方便之后的this.index调用之前oLi添加索引号。这是第一个for循环的作用

                     oLis[i].onclick = function() {

                         for(var n= 0;n<len;n++){//点击时先初始化样式

                             oLis[n].className = "";//3个li都没有on样式

                             oDivs[n].className = "hide";//3个div影藏

                         }

                         this.className = "on";//点击的li添加on样式

                         oDivs[this.index].className = "";//this.index调用之前oLi添加索引号

                     }

                 };

             }

          

          

        

        </script>

    纯手写,望采纳

    qq_随风飘...

    非常感谢!

    2017-02-07 23:29:30

    共 1 条回复 >

  • starrk
    2017-02-07 10:55:46

    第一个for循环,拿到点击的那一项,并添加点击事件;

    第二个for循环,对所有的项置默认空,然后才对所点击的该项赋对应的点击css样式值。

JavaScript进阶篇

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

467397 学习 · 21877 问题

查看课程

相似问题