<!DOCTYPE HTML>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<ul id="nav_ul">
<li><a href="">1</a></li>
<li><a href="">2</a></li>
<li><a href="">3</a></li>
<li><a href="">4</a></li>
</ul>
<script type="text/javascript">
var a = document.getElementById("nav_ul").getElementsByTagName("a");
for (var i = 0; i < a.length; i++) {
a[i].onclick = function() {
alert(i);
}
}
</script>
</body>
</html>
上面代码中,无论点击那个连接,都是提示4,这个可以理解,但是将onclick放入单独函数中却正常,如下
<!DOCTYPE HTML>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<ul id="nav_ul">
<li><a href="">1</a></li>
<li><a href="">2</a></li>
<li><a href="">3</a></li>
<li><a href="">4</a></li>
</ul>
<script type="text/javascript">
var a = document.getElementById("nav_ul").getElementsByTagName("a");
for (var i = 0; i < a.length; i++) {
yy(i);
}
function yy(i) {
a[i].onclick = function() {
alert(i);
}
}
</script>
</body>
</html>
如上,点击连接正常,请问这是什么原因?是js的函数有什么特别之处吗?