如下例子:此时并没有明显的for循环,但是 根据上述思想,可以立即加以解决 问题 "+text; divChild.onclick=function() { alert("row"+id); $("row"+id).value=text; } id++; } // --> script> [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]解决后代码: "+text; (function(){ var d=id; divChild.onclick=function() { alert("row"+d); $("row"+d).value=text; } })() id++; } // --> script> [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]补充:看到有网友这样解决了问题: "+text; divChild.onclick=function(f){ return function(){ alert(f); } }(id) id++; } // --> script> [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]我个人的理解是 在进入内层循环之前 把id赋值给f,f在作为内层循环的参数,其思想应该是一样的.