树形菜单复选框级联选择

点击复选框后,设置父级、子级的选中状态。

全部JS代码如下:

function getSiblings(id){
	var tr = $("#"+id);
	var pId = tr.attr("pId");
	var siblings = [];
	if(pId != undefined){
		$("tr").each(function(i, ele) {
			tr = $(ele);
			if(tr.attr("pId") == pId){
				siblings.push($(this));
			}
		});
	}
	return siblings;
}
function getParent(id){
	var tr = $("#"+id);
	var parents = [];
	parents.push(tr);

	var pId = tr.attr("pId");
	if(pId != undefined){parents = parents.concat(getParent(pId));}
	return parents;
}		
function getChildren(id){
	var tr = null;
	var children = [];
	if(id != undefined){
		$("tr").each(function(i, ele) {
			tr = $(ele);
			if(tr.attr("pId") == id){
				children.push(tr);
				children = children.concat(getChildren(tr.find("input:eq(0)").val()));
			}
		});
	}
	return children;
}
function chkModel(obj) {
	var id = obj.value, chkbox = null;
	$.each(getChildren(id), function(i,v){
		v.find("input:eq(0)").attr("checked", function(){return obj.checked ? "checked":""});
	});
	$.each(getParent(id), function(i,v){
		if(i > 0){
			chkbox = v.find("input:eq(0)");
			chkbox.attr("checked", function(){return getChildrenChecked(chkbox.val()) ? "checked":""});
		}
	});
}
function getChildrenChecked(id){
	var chked = false;
	$.each(getChildren(id), function(i,v){
		chked = v.find("input:eq(0)").attr("checked") == true;
		if(chked) {return false;}
	});
	return chked;
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值