我正在使用 asp.net TreeView 控件。并使用 jQuery 在其父复选框被选中时选择所有相应的子复选框。工作的 jQuery 和渲染的 HTML 在此 JS Fiddle 中
jQuery 选择复选框:
$('.tree').on('change', ':checkbox', function () {
var checked = this.checked;
var $elem = $(this).closest('table');
var depth = $elem.find('div').length;
var $childs = $elem.nextAll('table');
$childs.each(function () {
var $child = $(this);
var d = $child.find('div').length;
if (d <= depth) {
return false;
}
$child.find(':checkbox').prop('checked', checked);
});
});
但我不知道如何在选中其子项之一时取消选择父节点。
最佳答案
这是我见过的最奇怪的结构之一,无论如何,这是你的解决方案 http://jsfiddle.net/Gak2h/6/ 如果您想在取消选中所有元素时取消选中更改
$this.prop('checked', nbOfCheckeds == 0);
关于javascript - 使用 jQuery 取消选中子复选框时如何取消选择父复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17169661/