javascript - 使用 for 循环时出现 javascript 错误,即使它正在工作

标签 javascript

我正在尝试根据从字符串获得的结果来检查一系列复选框。由于该字符串中的值是用逗号分隔的,因此我执行以下操作:

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/

相关文章:

javascript - 重置页面上的所有复选框而不循环

javascript - ScrollIntoView() 锁定滚动 Angular4

javascript - Jquery 灯箱不向下延伸

javascript忽略数组中的字符串和小数点数字

javascript - Node.js WriteStream 同步

javascript - Angular 2 RC6 PrimeNG p-dropdown 未从组件中禁用

javascript - 为什么我的整个网页在 Firefox 中按按键移动?

JavaScript - 使用 window.open() 打开一个 URL 并在打开的页面上进行全选

javascript - 无法从指令中的模板编译 ng-repeat

javascript - 测试 Jasmine 中自定义事件的处理