我正在尝试创建几个链接并在循环内将 onclick 处理程序绑定到它们。单击链接时,我想显示一个指示链接编号的警报框(1 表示第一个链接,2 表示第二个链接,3 表示第二个链接,依此类推)。
<html>
<body>
</body>
</html>
<script type = 'text/javascript'>
for (var i = 0; i < 10; i++) {
var link = document.createElement("a");
link.innerHTML = "Link " + i;
link.href = '#';
link.onclick = function () {
alert("This is the link " + i);
return false;
};
document.body.appendChild(link);
}
</script>
出于某种原因,当我可以单击任何链接时,我会收到相同的警报消息“这是链接 10”。
可能是因为警报函数的参数仅在调用该函数时才被绑定?因为最终循环结束后 i 的值是 10。