Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.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 如何从';改变';使用jquery的事件_Javascript_Html_Jquery_Dom - Fatal编程技术网

Javascript 如何从';改变';使用jquery的事件

Javascript 如何从';改变';使用jquery的事件,javascript,html,jquery,dom,Javascript,Html,Jquery,Dom,我有以下代码: JavaScript: jQuery(".cbChild").on("change", function () { //go to parent checkbox to see if it's check. If not, check it. var parentElement = jQuery(this).closest('cbParentContainer');

我有以下代码:

JavaScript:

        jQuery(".cbChild").on("change", function () {
            //go to parent checkbox to see if it's check.  If not, check it.
            var parentElement = jQuery(this).closest('cbParentContainer');

            //I've also tried
            //var parentElement = jQuery(this).parentsUntil('cbParentContainer');
            //And
            //var parentElement = jQuery(this).parentsUntil('row');

            if (jQuery(this).find('input[type=checkbox]').prop("checked")) {
                parentElement.prop("checked", true);
            }
        });
HTML:


连接数字服务
事件1
事件2

当选中其中一个子复选框(class='cbChild')时,我想强制选中父(class='cbParent')复选框。但是,由于某些原因,我无法访问父级。调用parentElement.prop(“checked”,true)失败,因为parentElement不是父复选框。为了进一步澄清这个问题,有多个cbeventsconainer具有更多父/子复选框。我在这篇文章中只包含了一个。

我们这里没有处理子-父关系,但是当至少选中一个子项时,下面将选中“父”复选框,否则将取消选中

$(函数(){
$(“body”).on(“change”,“.cbChild输入”,函数(){
var cc=$(this).closest(.cbChildContainer),p=cc.prev(“div”).find(.cbParent输入”);
p、 道具(“选中”,元(“.cbChild输入:选中”,cc).length>0);
});
});

连接数字服务
事件1
事件2

他们不是父母和孩子,他们都是表亲。类名不授予DOM中的关系。cbParentContainer是复选框的父容器,我无法访问它。我不是说类名有任何关系。但是cbParentContainer封装了列表中最前面的复选框是我们的根复选框。如果另外两个中的任何一个被检查,那么它也必须被检查。我修改了你的代码,也做了相反的操作。如果选中“父”复选框,则现在取消选中所有“子”复选框。非常有用-再次感谢。
<div class="cbEventsContainer">
<div class="row">
    <span class="col-sm-4 cbParent"><input name="p$lt$ctl03$pageplaceholder$p$lt$ctl01$VirtualTourEventRegistration$rptEventList$ctl03$ctl00" id="p_lt_ctl03_pageplaceholder_p_lt_ctl01_VirtualTourEventRegistration_rptEventList_ctl03_ctl00" type="checkbox">
        <label for="p_lt_ctl03_pageplaceholder_p_lt_ctl01_VirtualTourEventRegistration_rptEventList_ctl03_ctl00">Connect with Digital Services</label>
    </span>
</div>
<div class="cbChildContainer">        
    <div class="row">
        <div class="col-xs-1">                            
        </div>
        <span class="checkbox col-sm-11 cbChild">
            <input name="p$lt$ctl03$pageplaceholder$p$lt$ctl01$VirtualTourEventRegistration$rptEventList$ctl03$rptEventRegistrationDetails$ctl00$ctl00" id="p_lt_ctl03_pageplaceholder_p_lt_ctl01_VirtualTourEventRegistration_rptEventList_ctl03_rptEventRegistrationDetails_ctl00_ctl00" type="checkbox">
            <label for="p_lt_ctl03_pageplaceholder_p_lt_ctl01_VirtualTourEventRegistration_rptEventList_ctl03_rptEventRegistrationDetails_ctl00_ctl00">Event 1</label>
        </span>

    </div>

    <div class="row">
        <div class="col-xs-1">                            
        </div>
        <span class="checkbox col-sm-11 cbChild">
            <input name="p$lt$ctl03$pageplaceholder$p$lt$ctl01$VirtualTourEventRegistration$rptEventList$ctl03$rptEventRegistrationDetails$ctl01$ctl00" id="p_lt_ctl03_pageplaceholder_p_lt_ctl01_VirtualTourEventRegistration_rptEventList_ctl03_rptEventRegistrationDetails_ctl01_ctl00" type="checkbox">
            <label for="p_lt_ctl03_pageplaceholder_p_lt_ctl01_VirtualTourEventRegistration_rptEventList_ctl03_rptEventRegistrationDetails_ctl01_ctl00">Event 2</label>
        </span>

    </div>        
</div>