for(var i=0;i<as.length;i++){
as[i].onmouseover = function(){
this.style.background='#ccc';
//as[i].style.background='#ccc';
}
}
this指的当前对象,可以是鼠标离开的按钮、文本框等,as[i]指的数组内其中一个索引所对应的值,比如as[1,2,3,4],不能给2设置 style样式。
可以用as[i].style设置style样式,但是事件处理程序在这里是一个闭包,所以在事件处理程序里面的i永远等于for循环结束最后一个i的值,这里为5,as[5]不存在,所以没有效果。如果设置循环条件为i<as.length-1;就可以看到,你鼠标移在任何一个li标签上面,都只有最后一个li标签变色,因为i只等于4。
this指的当前对象,可以是鼠标离开的按钮、文本框等,as[i]指的数组内其中一个索引所对应的值,比如as[1,2,3,4],你可以给as[1],as[2],as[3],as[4],as[5]中的任意一个设置样式,比如as[1].style.background='#ccc';但是你不能给as[i]设置 style样式,as[i].style.background='#ccc';这种方式是错误的。
不好意思 我没有积分了,回答问题赚个积分