javascript循环变量I的问题。
vara=document.getElementsByName("img");for(vari=0;i<a.length;i++){a[i].onmouseover=fu...
var a=document.getElementsByName("img");
for(var i=0;i<a.length;i++){
a[i].onmouseover=function(){
alert(i);
}
a.length长度是为3的。当鼠标放在图片上时候,alter(i)输出结果为什么是3.我认为应该是2. 展开
for(var i=0;i<a.length;i++){
a[i].onmouseover=function(){
alert(i);
}
a.length长度是为3的。当鼠标放在图片上时候,alter(i)输出结果为什么是3.我认为应该是2. 展开
2个回答
2012-06-05
展开全部
a【i】.onmouseover=function(){} 这个在for循环中 后面的function只在触发onmouseover这个事件才会真正的起作用,也就是说a【i】在循环定义中,只是定义了一个function的引用并没有实际取到当时的那个值。当定义的循环完毕后,实际最终的i=3,故后面的那个function 触发时候只能取到I=3这个值~!
这个是闭包的问题~!建议查看这方面的知识~!
这个是闭包的问题~!建议查看这方面的知识~!
追问
你说的很有道理。但是I怎么会取到3的。i是必须小于3的。for循环才会运行。如果等3.for循环早就退出了。
我懂了。循环完后i是=3的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询