我有一个类似于JQuery中如果所有子节点都未选中则取消父节点选中的问题(使用此解决方案),并尝试修改它,使得当取消选择父节点时,所有子节点也都取消勾选(而上面/下面的代码未能实现这一点)。
上述问题的JSFiddle链接为 (http://jsfiddle.net/fRxVs/)
尽管我不知道原因,但为了让JSFiddle在本地正确工作,我必须将最后一行的
基本上,我的设置有三个级别:
上述问题的JSFiddle链接为 (http://jsfiddle.net/fRxVs/)
jQuery.each(jQuery('#treeList ul li').find(':checkbox'), function(){
jQuery(this).change(function (){
if (jQuery(this).is(':checked')) {
jQuery(this).parentsUntil('#treeList').siblings().filter('input:checkbox').attr('checked', true).trigger('change');
}else{
jQuery(this).parents('ul:first').siblings('input:checkbox').prop('checked', $(this).parent().siblings().children('input:checked').length).trigger('change');
}
});
});
尽管我不知道原因,但为了让JSFiddle在本地正确工作,我必须将最后一行的
prop
更改为attr
。基本上,我的设置有三个级别:
Grand-Parent
- Parent
-- Child
- 如果选中/取消选中
祖父母
,那么它的子代和孙辈应该全部被选中/取消选中。 - 如果选中/取消选中
父母
,那么它的子代应该被选中/取消选中,同时它的父级也应该被选中/取消选中。 - 如果选中
子代
,那么它的父级和祖父母也应该被选中(如果没有子代被选中,则不应选中父级)。
我正在尝试将此更改为大洲、国家、地区 - 如果我只是这样说,我认为您会理解...
谢谢