方法要達到的效果是:“ 改變一節點的選中狀態時,其後代節點選中狀態也要跟隨當前節點的選中狀態改變而改變。當前節點選中時,其所有祖先節點也要跟著選中;如取消時,要根據其同級節點是否有選中時,來決定其祖先節點的選中狀態。”
說明:樹是用vs的TreeView控件生成的。
如圖:
代碼如下:
代碼如下:
jQuery(function(){
jQuery(":checkbox").click(function(){
var objNode = this;
var objNodeId=objNode.id;
var divObjId= objNodeId.substring(0,objNodeId.indexOf("CheckBox")) < /span>+ "Nodes";
jQuery('#'+divObjId+' input[type="checkbox"]').each(function(){
this.checked=objNode.checked;
}
);
jQuery("#"+objNodeId).parents("div[id]").each(function(){
var divId=this.id;
var cbId=divId.substring(0,divId.indexOf("Nodes")) + "CheckBox";
var cbCount=jQuery('#'+divId+' input:checked');
if(objNode.checked||cbCount.length==0)
{
var sId=document.getElementById(cbId);
if (sId)
{
sId.checked=objNode.checked;
}
}
}
);
});
});