Javascript 使用for循环填充document.getelementbyid中的数组
我现在面临在我的项目中使用循环的问题。目前,我有一个多个复选框,它们有自己独特的id示例:myCheckbox、myCheckBox1、myCheckBox2等等 我不想硬核myCheckBox后面的数字,所以我尝试使用for循环来完成它。不知何故,我不知道为什么我的for循环可以工作,如果我像document.getelementbyid('mycheckbox1')那样硬编码它。checked==true,那么它就可以工作了 我在代码中遗漏了什么?请指导我,因为我对网络编程还是新手。谢谢 这是我的密码:Javascript 使用for循环填充document.getelementbyid中的数组,javascript,Javascript,我现在面临在我的项目中使用循环的问题。目前,我有一个多个复选框,它们有自己独特的id示例:myCheckbox、myCheckBox1、myCheckBox2等等 我不想硬核myCheckBox后面的数字,所以我尝试使用for循环来完成它。不知何故,我不知道为什么我的for循环可以工作,如果我像document.getelementbyid('mycheckbox1')那样硬编码它。checked==true,那么它就可以工作了 我在代码中遗漏了什么?请指导我,因为我对网络编程还是新手。谢谢 这
<script type='text/javascript'>
function checkDisabled(yourSubmitButton){
for(var i=0;i<10;i++){
if(document.getElementById("myCheckBox"+i).checked==true){
yourSubmitButton.disabled = false;
return;
}
}
// If we have made it here, disable it
yourSubmitButton.disabled = true;
};
</script>
功能检查已禁用(yourSubmitButton){
对于(var i=0;i暗中捅:您在问题中说过,您的复选框称为myCheckbox
,myCheckbox1
,myCheckBox2
,诸如此类,但您的循环在第一次迭代时是在寻找myCheckbox0
,而不是myCheckbox0
,这将使它在您尝试读取echecked
属性null
如果getElementById
找不到特定的元素,它将返回null
。您无法对空对象进行。checked
属性将崩溃。您需要测试getElementById
是否返回有效的对象。就代码而言,它是正常的尽管存在myCheckbox
vsmyCheckbox0
(参见我的答案)的问题,但是。我们需要查看您的HTML。此外,在条件下,您永远不需要==true
。并且您需要有10个复选框才能使该代码不抛出错误。通常,解决此类问题的最佳选择是使用浏览器中内置的功能齐全的调试器。按F12或Ctrl+Shift+I或(在Mac上)Cmd+Shift+I或在菜单中查找,您将找到一个调试器,使用它可以一次一步编写语句,查看变量值,如果出现错误,则查看错误……不必在黑暗中蹒跚而行;您的浏览器中有一个可以使用的火炬。就像火炬类比@T.J-要尝试并重新记忆吗呃那个