我有一个调用此功能的html按钮。但由于未知原因,它只进行了3次迭代。
任何人都可以帮助或推荐一些很好的例子,为什么for循环在第三次迭代后会中断?
for(i = 1; i < 10; i++) {
alert(i);
if (document.getElementById(i).checked) {
alert("dda3");
act = act + document.getElementById("TD" + i).innerHTML + delimiter;
}
}
答案 0 :(得分:2)
最可能的原因是您没有id
值"4"
的元素。因此,document.getElementById
会返回null
,然后当您尝试查看checked
属性时,您将取消引用null
,这将引发异常。或者,当然,您没有id
值"TD4"
的元素,因此您的后期getElementById
会返回null
,并且在分配给{{1}时会出现异常}}
尝试调试时,最好使用调试器。所有现代浏览器都内置了调试器 - 其中一些非常好。在大多数浏览器中,按F12将调出调试器,但如果没有,请查看“开发人员工具”或类似菜单。
即使没有调试器,所有回溯十多年的浏览器都可以告诉您有关JavaScript错误的方法。我至少会启用它,这样你就可以看到错误。
旁注:以数字开头的innerHTML
值最近才在HTML中允许(在HTML5中有效,在HTML4或更早版本中无效),并且在CSS中仍然无效。我建议避开它们。
答案 1 :(得分:0)
可能你没有带有该ID的元素,这就是为什么它会打破for循环,请尝试在代码的html部分中初始化不增加或减少的位置的名称,如果你正确地执行它(在for或foreach循环的时候)也许你在2个不同的循环中使用相同的$ i变量或者改变它的值(除了$ i ++或$ i--)