问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
for(var i = 0;i<btns.length;i++){
var btn = btns[i];
btn.onclick = function(){
alert(0);
}
}
我的解答思路和尝试过的方法
当点击btn触发onclick事件时,for循环已经结束了,此时 i = 3,那么btn = btns[2], 为什么btn会有别的值呢
for(var i = 0;i<btns.length;i++){
var btn = btns[i];
btn.onclick = function(){
alert(0);
}
}
当点击btn触发onclick事件时,for循环已经结束了,此时 i = 3,那么btn = btns[2], 为什么btn会有别的值呢
将var改为let就行了
```html
<body>
<button>1</button>
<button>2</button>
<button>3</button>
<button>4</button>
<button>5</button>
<button>6</button>
<script>
const btns = document.querySelectorAll('button')
for (let i = 0; i < btns.length; i++) {
const btn = btns[i];
btn.onclick = function() {
console.log(i);
}
}
</script>
</body>
```