<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js</title>
</head>
<body>
<div id="1">1</div>
<div id="2">2</div>
<div id="3">3</div>
</body>
</html>
<script>
for (var i = 1; i <= 3; i++) {
var ele = document.getElementById(i);
console.log(ele)
ele.onclick = function () {
alert(i);
}
}
</script>
执行结果
控制台输出结果:
点击每个div都弹出4
分析原因:
没有块作用域的概念 i是全局变量 点击执行的时候 取元素的时候是准确的相对应的
添加的点击事件中的i是全局变量中的i,此时for循环已经执行完成 i变成了4