0

我有一个调用此函数的 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;
  }
}
4

2 回答 2

2

最可能的原因是您没有具有idvalue的元素"4"。因此,document.getElementById返回null,然后当您尝试查看checked属性时,您正在取消引用 a null,这会引发异常。或者,当然,您没有具有该id值的元素,"TD4"因此您稍后会getElementById返回null,并且在分配给innerHTML.

尝试调试时,最好使用调试器。所有现代浏览器都内置了调试器——其中一些非常好。在大多数浏览器上,按 F12 会调出调试器,但如果没有,请查看“开发者工具”或类似的菜单。

即使没有调试器,十多年前的所有浏览器都可以告诉您 JavaScript 错误。我至少会启用它,以便您可以看到错误。


旁注:id以数字开头的值最近才允许在 HTML 中使用(在 HTML5 中有效,在 HTML4 或更早版本中无效)并且在 CSS 中仍然无效。我建议避免使用它们。

于 2012-12-01T10:34:09.580 回答
0

可能您没有具有该 ID 的元素,这就是它破坏 for 循环的原因,请尝试在代码的 html 部分中初始化您不递增或递减的名称,如果您正确执行(在 while for 或 foreach 循环)也许您正在为 2 个不同的循环使用相同的 $i 变量或更改其值($i++ 或 $i-- 除外)

于 2012-12-01T10:43:24.227 回答