//更新父节点的方法,如果子节点全部选中则父节点选中,如果子节点中有一个未选中,
则父节点也未选中
function updateParent(currentCheckbox) {
var parentDivs = jQuery(currentCheckbox).parents("div");
var parentDiv = parentDivs[0];
var hasSelected = false;
jQuery(parentDiv).contents().find(":checkbox").each(function() {
if(this.checked) {
hasSelected = true;
}else{
hasSelected = false;
return;
}
});
var parentTables = jQuery(parentDiv).prev("table");
if(parentTables.length > 0)
{
var parentTable = parentTables[0];
var parentCheckboxes = jQuery(parentTable).find(":checkbox");
var parentCheckbox = parentCheckboxes[0];
parentCheckbox.checked = hasSelected ;
}
}
注意引入jQuery包。
此js代码加到页面中,将会给页面中的树形菜单的Checkbox默认加上一些功能:当选择父节点时全选子节点;当子节点全选时,父节点也会被自动选择上。同时不会影响其他Checkbox。