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

关于this的问题

for(var i=0,l=lis.length;i<l;i++){
   lis[i].onmouseover=function(){
       this.style.background='#567';
   }
   lis[i].onmouseout=function(){
       this.style.background='#FFF';
   }

}

此处的for循环我理解的是首先将lis遍历,然后将鼠标经过、移开的lis改变背景色,但此处为什么this就能代表鼠标经过、移开的lis?

正在回答

1 回答

this指的是当前调用函数的对象。for循环为每个lis[]添加Mouse事件。

当i=0时,代码为:lis[0].onmouseover=function{this.style.background='#567';}此时lis[0]就被添加了事件,这个时候的this代表lis[0]。

当下一次循环到;lis[1]时,this又是另一个lis[1]了。

你可以理解为第一个是this0,第二个为this1,之后this2···都是用this,但其实每个this指向的都不同。

另外,如果this换成lis[i],i是一个变量,会导致最后所有的事件都变成最后一个i(假如是5),所有事件都是lis[5].style.background了。

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

举报

0/150
提交
取消
DOM事件探秘
  • 参与学习       99542    人
  • 解答问题       1197    个

DOM事件?本课程会通过实例来给小伙伴们讲解如何使用这些事件

进入课程

关于this的问题

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号