为什么 javascript 中的 for 循环不能按预期工作

Why the for loop in javascript doesn't work as expected

本文关键字:工作 不能按 循环 javascript 中的 for 为什么      更新时间:2023-09-26
<html>
<head>
<style>
div{
   border: 1px solid black;
   width: 50px;
   height: 50px;
}
</style>
<script>
window.onload = function(){
var divv = document.getElementsByTagName("div");
   for(i=0; i<divv.length; i++){
      divv[i].onclick = function(){
        alert(i);
   }
   }
}
</script>
</head>
<body>
<div></div>
<div></div>
<div></div>
</body>
</html>

这是我的代码。我想向用户显示他们每次单击div时单击div的索引,但是每次单击不同的div时,它都会提醒相同的值,即3

试试这个:

function myClickHandler(i) {
    alert(i);
}
window.onload = function(){
var divs = document.getElementsByTagName("div");
for(var i = 0; i < divs.length; i++) {
    divs[i].onclick = myClickHandler(i);
}