坏骇芓
2016-06-29 16:42
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],为什么不行呢
as[i].onmouseover=function(){
as[i].style.background="#ccc"; // 此时,as[i]为最后一次循环结果
}
而 this 则是指向当前对象
是执行顺序的关系,先循环为每个元素绑定事件,循环结束后才开始执行事件中的代码。这时,i的值已经越界,用as[i]取不到正确的值。
当前对象指你现在循环到的对象
DOM事件探秘
99545 学习 · 1197 问题
相似问题