Javascript 如何从';改变';使用jquery的事件
我有以下代码: JavaScript: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');
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>