《因為我多加了一個=號而導致BUG這件事》
* 引子 在學習到JS的 “排他思想”時,里層for循環一直報錯 。
- 代碼如下
點擊查看代碼
<script>
// 1. 獲取所有按鈕元素
var btns = document.getElementsByTagName('button');
// btns得到的是偽數組 里面的每一個元素 btns[i]
for (var i = 0; i < btns.length; i++) {
btns[i].onclick = function () {
// (1) 我們先把所有的按鈕背景顏色去掉 干掉所有人
for (var i = 0; i <= btns.length; i++) {
btns[i].style.backgroundColor = '';
}
// (2) 然后才讓當前的元素背景顏色為pink 留下我自己
this.style.backgroundColor = 'pink';
}
}
如圖

于是回到代碼,查看第26行,也即里層for循環
仔細和源碼對比,發現計數器 i 多循環了一次,我用 log 依次打印元素如下

發現多循環了一次,是由于計數器 i 加了個 = 號而導致的,數組遍歷到了第5個元素,但實際上并沒有第5個元素
所以報錯,提示第5個元素找不到 “ style ” 屬性
* 修改后運行成功
浙公網安備 33010602011771號