javascript选择表中的所有复选框
我想做一个网页,有一个不同的网页与复选框旁边的表格。我希望用户能够选择多个网站,然后使用谷歌搜索栏搜索网站。我有一张表格,每个单元格都有一张填有复选框的表格。每个单元格都有一个checkall按钮,用于检查该单元格中的所有选项。我想添加一个复选框来选择页面上的所有选项。(是的,我可以省略这个选项,但我想知道如何访问单元格中的所有框,这样我就可以像我想的那样用谷歌搜索。)以下是我的基本资料。此时需要帮助的是checkPage函数中的部分javascript选择表中的所有复选框,javascript,html,Javascript,Html,我想做一个网页,有一个不同的网页与复选框旁边的表格。我希望用户能够选择多个网站,然后使用谷歌搜索栏搜索网站。我有一张表格,每个单元格都有一张填有复选框的表格。每个单元格都有一个checkall按钮,用于检查该单元格中的所有选项。我想添加一个复选框来选择页面上的所有选项。(是的,我可以省略这个选项,但我想知道如何访问单元格中的所有框,这样我就可以像我想的那样用谷歌搜索。)以下是我的基本资料。此时需要帮助的是checkPage函数中的部分 <html> <head> <
<html>
<head>
<script type="text/javascript">
function checkAll(checkname, bx) {
for (i = 0; i < checkname.length; i++){
checkname[i].checked = bx.checked? true:false;
}
}
function checkPage(bx){
var bxs = document.getElementByTagName ( "table" ).getElementsByTagName ( "link" );
for(i = 0; i < bxs.length; i++){
bxs[i].checked = bx.checked? true:false;
}
}
</script>
</head>
<body>
<input type="checkbox" name="pageCheck" value="yes" onClick="checkPage(this)"><b>Check Page</b>
<table border="1" name ="table">
<tr>
<td name ="list00">
<form name ="list00">
<input type="checkbox" name="Check_ctr" value="yes" onClick="checkAll(document.list00.link, this)"><b>Check All</b><dd>
<input type="checkbox" name="link" value="something.com">something.com<dd>
<input type="checkbox" name="link" value="something.com">something.com<dd>
</form>
</td>
<td><form name ="list01">
<input type="checkbox" name="Check_ctr" value="yes" onClick="checkAll(document.list01.link, this)"><b>Check All</b><dd>
<input type="checkbox" name="link" value="something.com">something.com<dd>
<input type="checkbox" name="link" value="something.com">something.com<dd>
</form></td>
</tr>
<tr>
<td><form name ="list10">
<input type="checkbox" name="Check_ctr" value="yes" onClick="checkAll(document.list10.link, this)"><b>Check All</b><dd>
<input type="checkbox" name="link" value="something.com">something.com<dd>
<input type="checkbox" name="link" value="something.com">something.com<dd>
</form></td>
<td><form name ="list11">
<input type="checkbox" name="Check_ctr" value="yes" onClick="checkAll(document.list11.link, this)"><b>Check All</b><dd>
<input type="checkbox" name="link" value="something.com">something.com<dd>
<input type="checkbox" name="link" value="something.com">something.com<dd>
</form></td>
</tr>
</table>
</body>
</html>
函数checkAll(checkname,bx){
对于(i=0;i
标记名是启动html标记的位,例如函数checkAll(bx){
var cbs=document.getElementsByTagName('input');
对于(变量i=0;i
从复选框的onclick属性调用该函数以选中所有
<input type="checkbox" onclick="checkAll(this)">
编辑我有点误读了你的问题,我看到你在代码中尝试了它。getElementsByTagName必须是复数形式,您可能会在那里输入错误,并且必须是上面答案指定的标记
编辑:将主复选框作为参数传递将允许按照vol7ron的建议切换选中/取消选中,并在本答案中进行了适当修改
该问题询问页面上的所有复选框,这样就足够了。
但是,提供对要查找复选框的元素的控制可以通过多种方式实现,太多了,无法详细说明,但示例可以是document.getElementById(id).getElementsByTagName,如果要控制的所有复选框都是来自一个元素的分支节点
否则,您可以通过进一步的标记名检索/自定义类名检索来列举一些 示例:
你试过jQuery吗?它正在成为用于DOM操作的javascript标准库(stackoverflow也使用in)
使用它,您可以执行$(':checkbox').prop('checked',true);选中页面上的每个复选框(但您可能不希望只在表中选中)
不管怎样,开始使用jQuery吧,它会让你的生活更轻松、更快乐,也会为你节省很多时间。。。。或者,如果您希望翻转相应表单中的所有复选框,则更简单:
function checkAll(bx){
var form = bx.form;
var ischecked = bx.checked;
for (var i = 0; i < form.length; ++i) {
if (form[i].type == 'checkbox') {
form[i].checked = ischecked;
}
}
}
函数checkAll(bx){
var-form=bx.form;
var ischecked=bx.checked;
对于(变量i=0;i
使用vanilla js
checkAll = box => {
const checkboxes = document.getElementsByTagName('input')
for (const checkbox of checkboxes) {
if (checkbox.type == 'checkbox')
checkbox.checked = box.checked
}
放入你的html
<input type="checkbox" onclick="checkAll(this)">
这一个成功了,谢谢。但是为了达到我的目的,我删除了整个if语句,并将其替换为cbs[I].checked=bx.checked?真:假;要使其成为切换开关,此代码仅适用于按钮。如果这个人取消勾选这个复选框,它就不会取消勾选你所有的复选框。@vol7ron我选他的时候,你的答案还没有被勾选出来。是的,这是一个直接的情景回答,如果你注意到我的回答,我将替换代码以切换复选框。非常感谢,这正是我搜索的内容。如果OP确实在链接之后,那么集合将是比getElementsByTagName更好的选择,因为它只获得链接,而不是可能是锚的元素。
<input type="checkbox" onclick="checkAll(this)">
checkAll = box => {
const checkboxes = document.getElementsByTagName('input')
for (const checkbox of checkboxes) {
if (checkbox.type == 'checkbox')
checkbox.checked = box.checked
}
<input type="checkbox" onclick="checkAll(this)">