我本想弹出的分别是 0 和 1 ,但是弹出的都是 2(i的值最后是2)<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>Hoverbox Image Gallery</title>
<script language="javascript">
function addImageHandlers() {
var imageElements = document.getElementsByTagName("img");
for (var i=0; i<imageElements.length; i++) {
imageElements[i].onclick = function(){alert(i);}
}
}
</script>
</head>
<body onLoad="addImageHandlers();">
<div id="images">
<ul>
<li>
<a href="#"><img src="img/photo01.jpg" alt="description" /></a>
</li>
<li>
<a href="#"><img src="img/photo02.jpg" alt="description" /></a>
</li></ul>
</div>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>Hoverbox Image Gallery</title>
<script language="javascript">
function addImageHandlers() {
var imageElements = document.getElementsByTagName("img");
for (var i=0; i<imageElements.length; i++) {
imageElements[i].onclick = function(){alert(i);}
}
}
</script>
</head>
<body onLoad="addImageHandlers();">
<div id="images">
<ul>
<li>
<a href="#"><img src="img/photo01.jpg" alt="description" /></a>
</li>
<li>
<a href="#"><img src="img/photo02.jpg" alt="description" /></a>
</li></ul>
</div>
</body>
</html>
for (var i=0; i<imageElements.length; i++) {
imageElements[i].xx="这是第 " + i +" 张图片。";
imageElements[i].onclick = function(){alert(this.xx);}
}
你后期调用i,当然就一直是这个死值。
http://blog.csdn.net/hitman9099/archive/2009/01/28/3854171.aspx
http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html
http://www.cn-cuckoo.com/2007/08/01/understand-javascript-closures-72.html