Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按名称选择_Javascript - Fatal编程技术网

Javascript 按名称选择

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"

所以我有一个问题,我需要根据一些变量为复选框设置一个值

问题是,我在将使用的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" 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');