首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

这段代码为什么会显示alert(5);怎么按原有意图显示alert(0)~alert(4)

2012-05-20 
这段代码为什么会显示alert(5)如何按原有意图显示alert(0)~alert(4)代码如下,应该是闭包的缘故,但还是比

这段代码为什么会显示alert(5);如何按原有意图显示alert(0)~alert(4);
代码如下,应该是闭包的缘故,但还是比较含混,希望有人帮我解释一下。

HTML code
<!DOCTYPE HTML><html><head><meta charset="utf-8" /><title>test</title><style type="text/css">    p {background:gold;}</style><script type="text/javascript"> function init() {        var pAry = document.getElementsByTagName("p");        for( var i=0; i<pAry.length; i++ ) {            pAry[i].onclick = function() {              alert(i);            }     }}</script> </head> <body onload="init();"> <p>p0</p> <p>p1</p> <p>p2</p> <p>p3</p> <p>p4</p> </body> </html> 


[解决办法]
HTML code
<!DOCTYPE HTML><html><head><meta charset="utf-8" /><title>test</title><style type="text/css">    p {background:gold;}</style><script type="text/javascript"> function init() {        var pAry = document.getElementsByTagName("p");        for( var i=0; i<pAry.length; i++ ) {        (function(i){            pAry[i].onclick = function() {                  alert(i);                }                     })(i)    }}</script> </head> <body onload="init();"> <p>p0</p> <p>p1</p> <p>p2</p> <p>p3</p> <p>p4</p> </body> </html>
[解决办法]
楼主 就是 闭包的问题

(function(x){
  
})(i)

i是实参,x是形参。


搜下 js闭包 一大堆解释。

热点排行