li选项卡,系统代码怎么知道我点击的是哪个选项卡?

来源:10-1 编程挑战

淋雨明天

2018-12-31 10:11

li选项卡,假如我点击第二个选项卡,怎么知道我点的是第二个选项卡?

写回答 关注

4回答

  • 小小小小小鲸鱼
    2019-04-29 17:33:13

    1 最外层的循环,在加载的时候会循环完毕,最后i就变成了3,所以需要一个变量,来保存i;

    2  oLis[i].onclick 在外层for循环时,给每个oLis[i]加上了点击事件.然后它的使命就此结束,不是你点击第几个li,i就会变成相对应的数字,这时候你再想获取下标,就只能从index中取了.

    也不知道我表达清楚没,我的理解大概是这样哈,有异议大家再一起交流,一起进步!

    小小小小小鲸...

    补充,用es6里面的let代替var,就会避免这样的问题,因为let只在本轮循环有效,下一轮循环i会被重新赋值.具体可以看看阮一峰的es6 http://es6.ruanyifeng.com/#docs/let

    2019-04-29 18:38:33

    共 1 条回复 >

  • qq_慕少2504550
    2019-02-13 16:55:00

    你标记的那个代码,是给每一个li都添加了一个点击事件,知道你点击的是那个li,主要是下面的oDivs[this.index].className = "";因为你保存了 index ,所以它知道你点击的是那个li标签

  • qq_韦泽光_0
    2019-01-22 15:00:55

    你可以在html中定义onclick="choose(this)",然后在js里面写choose函数。this就把当前选中的节点传过去了

  • 淋雨明天
    2018-12-31 10:17:05

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

                     oLis[i].index = i;

                     oLis[i].onclick = function() {  //这句假如我点了第二个选项卡,i就等于1吗?,这段代码不是在window.onload中加载只执行一次吗?我点击了他还会执行的?

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

                             oLis[n].className = "";

                             oDivs[n].className = "hide";

                         }

                         this.className = "on";

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

                     }

                 };


JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题