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

关于this和index的问题

        

    // JS实现选项卡切换

     window.onload=function(){

     var tabs=document.getElementById("tabs");

     var li=document.getElementsByTagName("li");

     var div=tabs.getElementsByTagName("div");

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

         li[i].index=i;

         li[i].onclick=function(){

            for(var n=0;n<li.length;n++){

                li[n].className="";

                div[n].className="hide";

            } 

            this.className="on";

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

         }

     }

 }

this的用法到底是什么,这里指的是<li>吗,将i的值f赋给<li>的索引,最后是怎样和div索引绑定的??

正在回答

3 回答

li[i].index=i;  这里是自定义属性,给li循环添加了一个index,这个index可以命名(abc,sadfaf),只是习惯和方便阅读.

代码 li[n].className=""; 是把所有li的className清空

这里的this指的是你点击的对象,就是li,把点击的li的className变成'on';

div[this.index]这里的this.index就是你点击的li身上的自定义索引值,0或1或2,比如点击第1个或第3个li  ,理解为div[0]   div[2]

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

慕田峪6011835 提问者

谢谢!
2017-03-05 回复 有任何疑惑可以回复我~
#2

不会修电脑的程序员

this指的是点击的对象,就是li,那可以把this换成li么?同样可以把this.index换成li.index么?不可以的话为什么啊?
2017-03-20 回复 有任何疑惑可以回复我~
#3

不会修电脑的程序员 回复 慕田峪6011835 提问者

this指的是点击的对象,就是li,那可以把this换成li么?同样可以把this.index换成li.index么?不可以的话为什么啊?
2017-03-20 回复 有任何疑惑可以回复我~
#4

套子里的海怪 回复 不会修电脑的程序员

this 是Javascript语言的一个关键字它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。
2017-03-20 回复 有任何疑惑可以回复我~
查看1条回复

this在这里指向的是调用函数的对象

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

     li[i].index=i;  这段代码是什么意思啊,总觉得他可有可无,li[i]就可以找到对应的li啊??求解答

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

套子里的海怪

作用域的问题,你到for循坏在外面是无法使用这儿的函数内部的i的。
2017-03-06 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

关于this和index的问题

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