<script language="JavaScript">
window.onload=function(){
for(var i=1; i <4 ; i++){
var id = document.getElementById("a" + i);
id.onclick = function(){
alert(i);//为什么这里总是显示是4
}
}
}
</script>
<h1>javascript闭包</h1>
<ul>
<li id="a1">aa</li>
<li id="a2">aa</li>
<li id="a3">aa</li>
</ul>
window.onload=function(){
for(var i=1; i <4 ; i++){
var id = document.getElementById("a" + i);
id.onclick = function(){
alert(i);//为什么这里总是显示是4
}
}
}
</script>
<h1>javascript闭包</h1>
<ul>
<li id="a1">aa</li>
<li id="a2">aa</li>
<li id="a3">aa</li>
</ul>
闭包要这样用
<script language="JavaScript">
window.onload=function(){
for(var i=1; i <4 ; i++){
var id = document.getElementById("a" + i);
(function(i){
id.onclick = function(){
alert(i);
}
})(i);
}
}
</script>
<h1>javascript闭包</h1>
<ul>
<li id="a1">aa</li>
<li id="a2">aa</li>
<li id="a3">aa</li>
</ul>
——————
window.onload当整个页面加载完毕的时候调用onload
这个循环
当i=3时,循环到了最后一次
然后在结束之前
i又加了1
到底4后,退出循环
然后你就点击,所以结果永远为4