关于循环的问题

来源:10-1 编程挑战

慕无忌7023775

2016-01-28 18:57

  oLis[i].onclick = function() {

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

                         oLis[i].className = "";

                         oDivs[i].className = "hide";

oLis[i].index = i;

                     }

                     this.className = "on";

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

                 }

             };

这样写为什么不行啊?跟下面的正确的 有什么不同啊?


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

                 }

             };


写回答 关注

2回答

  • 布橙
    2016-01-29 15:30:43

    答案里的最外层的循环:1、强制给数组中的每个对象一个索引,这样鼠标经过的时候才能获取经过的是哪个<li>;2、给每个 oLis[i].onclick定义一个dom事件

  • 布橙
    2016-01-29 14:46:27

    你把oLis[i].index = i;这句放在循环中没有意义,这个循环是把div隐藏的,并不能通过这个i知道该显示哪个

JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题