Javascript 取消选中复选框将取消选中表中的其他复选框
我在这里使用的是基本的HTMLJavascript 取消选中复选框将取消选中表中的其他复选框,javascript,html,checkbox,html-table,Javascript,Html,Checkbox,Html Table,我在这里使用的是基本的HTML表格,以及输入复选框字段 这就是我想用Javascript实现的目标: 表的第二列有一个复选框。第三列包含第二列的“子选项”。每一行都是独立的 如果取消选中第2列中的复选框,我希望直接取消选中右侧中的所有复选框(第3列中的子选项) 我也想做相反的事;如果选中第一个复选框,它将选中子选项中未选中的所有复选框 伪代码思想: if checkbox checked: uncheck child input's in td `id` 或 如果选中复选框: 取消勾选 取
表格
,以及输入
复选框字段
这就是我想用Javascript实现的目标:
表的第二列有一个复选框。第三列包含第二列的“子选项”。每一行都是独立的
如果取消选中第2列
中的复选框,我希望直接取消选中右侧
中的所有复选框(第3列中的子选项)
我也想做相反的事;如果选中第一个复选框,它将选中子选项中未选中的所有复选框
伪代码思想:
if checkbox checked:
uncheck child input's in td `id`
或
如果选中复选框:
取消勾选
取消选中您可以尝试以下操作:
jQuery
$('#checkall:checkbox').change(function () {
if($(this).attr("checked")) $('input:checkbox').attr('checked','checked');
else $('input:checkbox').removeAttr('checked');
});
纯Javascript解决方案(没有框架被标记)
var table=document.getElementById(“mytable”);
var复选框;
对于(var i=0;我想回答,但我不想给出编码:\n我没有尝试过;我也没有要求代码。我想知道,一般来说,这背后的概念是什么?我的第一个猜测是,我可能需要有匹配的ID或类,只需硬编码彼此相关的选中复选框?有没有更简单的方法这里我可以说,“取消选中
的子项的所有复选框。”?请至少将HTML与表格和复选框一起放入格式良好的表格中,这样可以更容易地回答如何为其编写JavaScript。我已经添加了一些psudo,这两个选项我认为可能有效;对此有任何反馈吗?这与我的要求非常接近。现在,表格上的每一行都会有相同的情况。看起来我st需要添加特定的类或ID,这样一个复选框就不会影响另一行上的任何内容。啊。所以你有,比如说,5个复选框,你想让第四个复选框选中最后四个,而不是第一个?有点。假设这个表有5行,3列。第2列一直向下都有一个“主”复选框。第3列有4个“子选项”与“主”复选框相关但仅在同一行上的复选框。如果选择主复选框,它将取消选中(或选中)所有“子选项”复选框,再次,仅在同一行。好的,另一个人几乎回答了它,哇。谢谢!哈哈谢谢。我必须承认,我更喜欢MrCode的答案。我以前甚至不知道如何在JS中实现它。这就是“漂亮”的定义。
$('#checkall:checkbox').change(function () {
if($(this).attr("checked")) $('input:checkbox').attr('checked','checked');
else $('input:checkbox').removeAttr('checked');
});
var table = document.getElementById("mytable");
var checkbox;
for(var i=0; i<table.rows.length; i++){
checkbox = table.rows[i].cells[1].getElementsByTagName("input")[0];
checkbox.onchange = function(){
var others = this.parentNode.parentNode.cells[2].getElementsByTagName("input");
for(var j=0; j<others.length; j++){
others[j].checked = this.checked;
}
}
}