我对 JS 比较陌生,所以这可能是一个常见问题,但是在处理 for 循环和 onclick 函数时我注意到一些奇怪的事情。我能够用这段代码复制这个问题:
<html>
<head>
<script type="text/javascript">
window.onload = function () {
var buttons = document.getElementsByTagName('a');
for (var i=0; i<2; i++) {
buttons[i].onclick = function () {
alert(i);
return false;
}
}
}
</script>
</head>
<body>
<a href="">hi</a>
<br />
<a href="">bye</a>
</body>
</html>
单击链接时,我希望得到“0”和“1”,但我却得到“2”。为什么是这样?
顺便说一句,我设法通过使用“this”关键字解决了我的特定问题,但我仍然很好奇这种行为背后的原因。