问答详情
源自:10-1 编程挑战

来个朋友帮忙解释一下这段循环


             for(var i= 0,len = oLis.length;i<len;i++){

                 oLis[i].index = i;

                 oLis[i].onmouseover= function() {

                     for(var n= 0;n<len;n++){

                         oLis[n].className = "";

                         oDivs[n].className = "hide";

                     }

                     this.className = "on";

                     oDivs[this.index].className = "";

                 }

             };


提问者:编码NPC 2016-04-27 03:41

个回答

  • mirrorofsky
    2016-04-27 09:46:41
    已采纳

                 for(var i= 0,len = oLis.length;i<len;i++){

                     oLis[i].index = i;  //这里的index是oLis[i]的自定义属性,用来保存该元素在原数组中的下标

                     oLis[i].onmouseover= function() {  //当鼠标拂过时,执行的代码

                         for(var n= 0;n<len;n++){

                             oLis[n].className = "";

                             oDivs[n].className = "hide";

                         } //,当拂过的时候,此方法将三个div都设置为hide样式(即隐藏元素),三个li元素都这只为没有样式

                         this.className = "on"; // ,将当前拂过的li元素叫上  class="on"

                         oDivs[this.index].className = ""//将于当前拂过的li元素对应的div 去掉hide属性(即显示出来)

                     }

                 };

    就是,当你拂过某个li元素时,就给这个li元素加上 class="on",然后在把与之对应的div去掉之前设置的class="hide".