for(var i=0;i<as.length;i++){
as[i].onmouseover=function(){
this.style.backgroundColor='#567';
};
as[i].onmouseout=function () {
this.style.backgroundColor='#FFF';
};
as[i].onclick=function () {
asCon=this.innerHTML;
title.innerHTML=asCon;
menu.style.display='none';
};
为什么将加粗的this改成as[i]就不能正常运行,this指代的不就是as[i]吗??
如果你非要用as[i]这种格式,可以这样写
as[i].onmouseover=function(as,i){ return function(){ as[i].style.backgroundColor='#567'; } }(as,i);
这样闭包函数就可以访问外部变量了,给你也网址里面有一点介绍,http://www.jb51.net/article/54397.htm
你把this改成as[i],可以打开控制的,输出错误的原因是:TypeError: as[i] is undefined,as[i]没有定义,意思就是匿名函数无法访问as数组。