for循环在javascript中意外结束

时间:2012-12-01 10:32:28

标签: javascript

我有一个调用此功能的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;
  }
}

2 个答案:

答案 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--)