Javascript 按名称选择
所以我有一个问题,我需要根据一些变量为复选框设置一个值 问题是,我在将使用的HTML上遇到了下一个命名约定:Javascript 按名称选择,javascript,Javascript,所以我有一个问题,我需要根据一些变量为复选框设置一个值 问题是,我在将使用的HTML上遇到了下一个命名约定: <input id="jc_1" type="checkbox" name="jc[1]"> <input id="jc_2" type="checkbox" name="jc[2]"> <input id="jc_3" type="checkbox" name="jc[3]"> <input id="jc_4" type="checkbox"
<input id="jc_1" type="checkbox" name="jc[1]">
<input id="jc_2" type="checkbox" name="jc[2]">
<input id="jc_3" type="checkbox" name="jc[3]">
<input id="jc_4" type="checkbox" name="jc[4]">
然后循环检查所有这些,并决定检查哪一个,这里的问题是,我真的不知道如何在这些特定条件下处理这种情况
我不能使用JQuery,也不能更改HTML标记。太糟糕了,你不能更改标记 你可以做一些像
for(var i = 0; i<numberOfCheckboxes.length; i++){
document.getElementsByName('jc['+i+']');
}
for(var i=0;i您可以将
但请注意,这可能与以下元素相匹配:
<input id="jc_1" type="checkbox" name="jc[0][0]">
对于您的特定需求,这可能不是问题。document.getElementsByName()
返回一个数组(即使它只包含一个元素。您只需要像下面这样引用所选数组中的[0]元素。document.getElementsByName('jc[1])[0]
document.getElementsByName('jc[1]')[0].setAttribute('checked','checked');
名字叫jc[1]
,你能把jc[]
放进去吗?[]
将为您提供自动编号功能。不起作用,我已经尝试过了。如果您要更改HTML名称,我真的做不到。哪些变量决定了值的更改?名称?您需要支持哪些浏览器版本?在相当现代的浏览器中,应该这样做。a适用于较旧的浏览器。这就是na我、id或类。我可以处理所有这些问题。对于这个特定的问题,我决定尝试使用name,但如果你有一个使用id的解决方案,那也会很好。比我的答案要好得多。值得称赞。此外,正如一位评论员所说,对于较旧的浏览器,有一个polyfill可用。@V.Roudge取决于你的答案。你的答案将准确地选择所有<代码>jc[N]
元素,而此解决方案假定永远不会有N维数组元素完美,这将在这种特殊情况下正常工作。感谢您将很快接受此答案。
<input id="jc_1" type="checkbox" name="jc[0][0]">
document.getElementsByName('jc[1]')[0].setAttribute('checked','checked');