关于循环复选框的Javascript

时间:2014-11-28 20:10:05

标签: javascript

只想问一下,为什么以下代码无效(发现错误)

for(var i=1; i<10; i++)
{
  alert(window.document.FORM.checkbox[i].checked);

}

但我可以执行以下操作,我只想循环在html中创建的复选框:

for(var i=1; i<10; i++)
{
  alert(window.document.FORM.checkbox1.checked);

}

2 个答案:

答案 0 :(得分:0)

很奇怪,但你的代码对我有用。

for(var i=1; i<10; i++)
{
  alert(window.document.FORM.checkbox[i].checked);

}
<form name="FORM">
  <input type="checkbox" name="checkbox" checked="true" />
  <input type="checkbox" name="checkbox" checked="true" />
  <input type="checkbox" name="checkbox" />
  <input type="checkbox" name="checkbox" checked="true" />
  <input type="checkbox" name="checkbox" />
  <input type="checkbox" name="checkbox" />
  <input type="checkbox" name="checkbox" />
  <input type="checkbox" name="checkbox" checked="true" />
  <input type="checkbox" name="checkbox" />
  <input type="checkbox" name="checkbox" />
</form>

答案 1 :(得分:0)

你的两个陈述不一样;当我等于1时,你的陈述将被评估为

alert(window.document.FORM.checkbox[1].checked);

不一样
alert(window.document.FORM.checkbox1.checked);

确实如此,使用Lee Taylor的解决方案,或者使用id重写整个方法或通过document.getElementsByTagName获取所有复选框,例如

var chks = document.getElementsByTagName("input");
for (var i=0, l=chks.length; i<l; i++) { 
  if ( chks[i].type === "checkbox" ) 
    alert(chks[i].checked);
}

HTH, bovako