为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

正在回答

4 回答

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

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

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

0 回复 有任何疑惑可以回复我~
#1

小小小小小鲸鱼

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

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

                 }

             };


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468194    人
  • 解答问题       21891    个

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

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信