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

来源:10-1 编程挑战

编码NPC

2016-04-27 03:41


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

                 }

             };


写回答 关注

1回答

  • 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".

    花陽親Go

    原来这里的index是自定义属性,一直不明白这里的index是什么属性,网上查了一下,说是“index 属性可返回下拉列表中选项的索引位置”,我还在纠结为什么没有下拉列表这里会出现index属性呢,这里的index如果换成其他任意的字符也就不会给我这样的新手造成困惑了,毕竟之前的练习里面没有讲过自定义属性,乍看一下还以为这里的index是一个固有属性呢

    2016-06-15 07:40:10

    共 2 条回复 >

JavaScript进阶篇

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

468196 学习 · 21891 问题

查看课程

相似问题