簡體   English   中英

使用for循環獲取JavaScript錯誤,即使它正在工作

[英]Getting javascript error with a for loop even though it's working

我試圖根據從字符串中獲得的結果來檢查一系列復選框。 由於此字符串中的值用逗號分隔,因此請執行以下操作:

var busLines = 'AB, CD, EF, GH, IJ, KL'
var temp = busLines.split(', ');

所以現在我的數組'temp'應該是我的字符串的各個元素:

temp[0] = 'AB'
temp[1] = 'CD'
temp[2] = 'EF'
and etc...

我的“ temp”數組中返回的每個值中的每個對應於具有相同ID的復選框。 因此,當我遍歷並且出現值'AB'時,將選中復選框id ='AB'。

這就是為什么我嘗試這樣做:

for (var i = 0; i < temp.length; i++) {
    document.getElementById(temp[i]).checked = true;
}

當我測試它時,id確實可以完成我想要的操作,但是它給了我以下錯誤:

消息:“ document.getElementById(...)”為空或不是對象行:530字符:9

我不明白為什么我要執行的操作出錯。 有什么建議么?

您最有可能在頁面上找不到ID。 無論如何,您都應該通過添加空值檢查等來防御性地對此進行編碼。

嘗試這樣的事情:

for (var i = 0; i < temp.length; i++) {
    var checkBox = document.getElementById(temp[i]);

    if(checkBox) {
        checkBox.checked = true;
    }
}

這意味着您的一個ID不存在(或在字符串末尾可能有一個額外的“,”。您應確保所有ID都存在。如果您只想忽略該錯誤,則可以將調用包裝到嘗試/捕獲中的getElementById。

我認為您的循環訪問的項比實際存在的多,例如,當busLines以','結尾時

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM