今天在使用Javascript實作一個簡單的功能期間,出現了如下圖所示的錯誤:
錯誤資訊大致為:未捕獲的型別錯誤:無法讀取未定義的屬性'checked'......
錯誤代碼如下:
var length = hobby.length;
for (var i = 0; i < length; i++) {
hobby[i].onclick = function() {
var count = 0;
if (hobby[i].checked == true) {
count++;
}
checkAll.checked = (count == length);
}
}
通過定位發現問題出現在如下代碼處:
if (hobby[i].checked == true) {
count++;
}
原本認為這段代碼中hobby[i]的i可以自動獲取到外層for回圈中的變數i的值
但是在中間還需要經過點擊事件hobby[i].onclick = function() {...}函式
所以無法獲取到外層for回圈的i變數,從而導致物件獲取不到,更不要說物件的'×××'屬性了
錯誤資訊才會提示“無法讀取未定義的屬性'×××'”,此時需要在這個點擊函式中重新定義一個for回圈來獲取物件
修改后的代碼如下:
var length = hobby.length;
for (var i = 0; i < length; i++) {
hobby[i].onclick = function() {
var count = 0;
for (var i = 0; i < length; i+ {
if (hobby[i].checked == true) {
count++;
}
}
checkAll.checked = (count == length);
}
}
修改后的代碼成功運行,解決掉了這個小問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/241772.html
標籤:其他
上一篇:不會做圖的程式員不是好程式員,這11個超好用網站讓你設計做圖能力爆棚!
下一篇:序列化二叉樹

