我正在尝试根据从字符串获得的结果来检查一系列复选框。由于该字符串中的值是用逗号分隔的,因此我执行以下操作:
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(...)”为 null 或不是对象 线路:530 字符数:9
我不明白为什么当我希望它执行的操作有效时我会收到错误。有什么建议吗?
最佳答案
很可能您有一个在页面上找不到的 ID。无论如何,您应该通过添加空检查等来进行防御性编码。
尝试这样的事情:
for (var i = 0; i < temp.length; i++) {
var checkBox = document.getElementById(temp[i]);
if(checkBox) {
checkBox.checked = true;
}
}
关于javascript - 使用 for 循环时出现 javascript 错误,即使它正在工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9998328/