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

this和as[i]

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

                {

                    as[i].onmouseover=function(){

                        this.style.background="#ccc";

                    }

                    as[i].onmouseout=function(){

                        this.style.background="none";

                    }

                    as[i].onclick=function(){

                        title.innerHTML=this.innerHTML;

                    }

                }

我之前的this都是用的as[i],为什么不行呢

正在回答

3 回答

as[i].onmouseover=function(){

                       as[i].style.background="#ccc";  // 此时,as[i]为最后一次循环结果

                    }

而 this 则是指向当前对象


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

坏骇芓 提问者

当前对象又是指的什么
2016-07-11 回复 有任何疑惑可以回复我~

是执行顺序的关系,先循环为每个元素绑定事件,循环结束后才开始执行事件中的代码。这时,i的值已经越界,用as[i]取不到正确的值。

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

当前对象指你现在循环到的对象

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

举报

0/150
提交
取消

this和as[i]

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