Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.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_Jquery_Html_Checkbox - Fatal编程技术网

Javascript 选中父复选框不会选中子复选框

Javascript 选中父复选框不会选中子复选框,javascript,jquery,html,checkbox,Javascript,Jquery,Html,Checkbox,我正试图让jquery在选中父项时选中子项复选框,但是这并没有发生,而且我一辈子都搞不清楚这是怎么回事 代码: HTML: 下面是使用类而不是id HTML 代码正常工作,只需在JSFIDLE中添加jQuery。单击Frameworks&Extensions下的第一个下拉列表,然后选择如下所示的jQuery库: 不过,您的JS可能会更干净一些: $('#check-all-parent').click(function() { $("#check-all-child").prop("ch

我正试图让jquery在选中父项时选中子项复选框,但是这并没有发生,而且我一辈子都搞不清楚这是怎么回事

代码:

HTML:


下面是使用类而不是id

HTML


代码正常工作,只需在JSFIDLE中添加jQuery。单击Frameworks&Extensions下的第一个下拉列表,然后选择如下所示的jQuery库:

不过,您的JS可能会更干净一些:

$('#check-all-parent').click(function() {
    $("#check-all-child").prop("checked", $(this).prop("checked"));
});
不需要使用循环。在js中使用类而不是id和:

$.check-all-parent.onclick,函数{ $.check-all-child.propchecked,$this.propchecked; }; 你好 你好 你好 你好
HelLo2

如果您有父子复选框,请考虑使用嵌套列表:

你好 你好 你好 然后使用

$“复选框输入[type=checkbox]”。在“更改”上,函数{ 美元这个 .nextAll'ul' .查找“输入[类型=复选框]” .prop'checked',this.checked; }; $“复选框输入[type=checkbox]”。在“更改”上,函数{ 美元这个 .nextAll'ul' .查找“输入[类型=复选框]” .prop'checked',this.checked; }; 保险商实验室{ 列表样式:无; } 你好 你好 你好 你好 你好
可能是因为ID必须是唯一的-所以在ID选择器上运行each循环没有多大意义。我希望是这样,即使把它们改成一个类也不行。嗯,是的,确实如此:我已经更新了所有内容,以反映你的建议。但是,有没有办法做到这一点,如果你选择了孩子,家长也会被选中?@zemaker,你从一开始就很好。您只需要将jQuery作为库添加到JSFIDLE中。见下面我的完整答案。这解决了它,这里是更新的正确答案。
<input type="checkbox" id="check-all-parent">hello
<br />
<input type="checkbox" id="check-all-child">hello2
<input type="checkbox" id="check-all-parent">hello
<br />
<input type="checkbox" class="check-all-child">hello2
$('#check-all-parent').click(function(event) {
if(this.checked) { // check select status
    $('.check-all-child').each(function() { //loop through each checkbox
        this.checked = true;  //select all checkboxes with class "checkbox1"               
    });
}else{
    $('.check-all-child').each(function() { //loop through each checkbox
        this.checked = false; //deselect all checkboxes with class "checkbox1"                       
    });         
} 
$('#check-all-parent').click(function() {
    $("#check-all-child").prop("checked", $(this).prop("checked"));
});