使用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(…)"为null或不是对象线路:530字符:9
我不明白为什么当我想让它做的事情奏效时,我会出错。有什么建议吗?
很可能您的ID在页面上找不到。无论如何,您应该通过添加null检查之类的内容来进行防御编码。
试试这样的东西:
for (var i = 0; i < temp.length; i++) {
var checkBox = document.getElementById(temp[i]);
if(checkBox) {
checkBox.checked = true;
}
}
这意味着你的一个ID不存在(或者字符串末尾可能有一个额外的","。你应该确保所有的ID都存在。如果你只是想忽略这个错误,你可以在try/catch中包装对getElementById的调用。
我认为您的循环访问的项目比实际存在的项目多,例如当busLines以","结束时
相关文章:
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- AngularJS循环不工作
- For循环在Javascript函数中无法正常工作
- for循环在node.js中的工作方式
- 循环内部的递归函数未按预期工作
- mongoose.js Model.remove在循环中只能工作一次
- JavaScript while循环没有'不能在有条件的情况下工作
- 当if条件被添加到循环中时,Javascript函数将停止工作
- 让循环在我的脚本中工作
- 循环不'不能在“onreadystatechange”中工作
- 如何使此循环工作?它's返回未定义的语言js
- 为什么javascript setTimeout()不能在循环中工作
- jAlert在循环中无法正常工作
- css转换在for循环javascript中无法正常工作
- for循环,if else不工作Javascript
- CSS-转换在JavaScript for循环中不能正常工作
- 从数组中随机选择,但在for循环中选择是不可能的;没有按预期工作
- JavaScript:For循环无法正常工作
- For循环未按预期工作(使用jQuery)
- 为什么我的Javascript Chrome扩展代码不工作?(循环检查按钮)