Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.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 当存在id';他内心有某种性格_Javascript_Html - Fatal编程技术网

Javascript 当存在id';他内心有某种性格

Javascript 当存在id';他内心有某种性格,javascript,html,Javascript,Html,我需要使用JavaScript选中某些复选框。所有这些复选框在id的开头都有字母a,而其他复选框有不同的字母。我也不知道会有多少个复选框,因为它们是动态创建的 <input type="checkbox" id="a1" /> 现在,如果我点击一个按钮,就会调用一个JavaScript函数,并且应该选中这些在id开头带有字母a的复选框,这可能吗?如何实现 是否有可以与document.getElementById('a')结合使用的内容。选中了?您可以获取复选框并循环它们,如下

我需要使用JavaScript选中某些复选框。所有这些复选框在id的开头都有字母a,而其他复选框有不同的字母。我也不知道会有多少个复选框,因为它们是动态创建的

<input type="checkbox" id="a1" />

现在,如果我点击一个按钮,就会调用一个JavaScript函数,并且应该选中这些在id开头带有字母a的复选框,这可能吗?如何实现


是否有可以与
document.getElementById('a')结合使用的内容。选中了

您可以获取复选框并循环它们,如下所示:

var checks = document.getElementsByTagName('input');
for(var i = 0, cb; cb = checks[i]; i++) {
   if(cb.type.toLowerCase() == 'checkbox' && cb.id && cb.id.charAt(0) == 'a')
     cb.checked = true;
}
var chks = document.querySelectorAll("input[type=checkbox][id^=a]");


编辑:使用起来有点干净,很好的电话,谢谢

最好使用id=“a*”为输入指定一个类“a”,然后使用jQuery选择该特定类的所有复选框

例如:

<input type="checkbox" id="a1" class="a" />
我希望这会有所帮助,如果您不介意使用jQuery的话,更新的浏览器(IE8、Firefox、Chrome、Opera)将允许您执行以下操作:

var checks = document.getElementsByTagName('input');
for(var i = 0, cb; cb = checks[i]; i++) {
   if(cb.type.toLowerCase() == 'checkbox' && cb.id && cb.id.charAt(0) == 'a')
     cb.checked = true;
}
var chks = document.querySelectorAll("input[type=checkbox][id^=a]");

这将查找所有类型为“checkbox”且id属性以字母a开头的元素。对于较旧的浏览器,您必须使用类似的内容。或者,您可以使用类似的内容,这是jQuery中使用的CSS选择器引擎。

您还可以执行
$(“输入:checkbox[id^=a]”)。attr('checked',true)
不改变标记…但包含jQuery对于这一点来说是过分的:)我的意思是,仅为这一点包含它是过分的。+1.
cb.id.substring(0,1)
可能更好,因为
cb.id.charAt(0)
@Tim-很好的调用,我很少使用它,它总是被遗忘,但肯定更干净。更新为使用
.charAt()
取而代之:)