Jquery操作TreeView 父节点checkbox选中,子节点checkbox也选中
View Code
function CheckSub() {
var ClickChecked = $(this).attr("checked");
var ClickID = $(this).attr("id").toString();
var SubID = ClickID.replace("CheckBox", "Nodes");
$("#" + SubID).find("input[type='checkbox']").attr("checked", ClickChecked);
//获取选中的checkbox的部门ID
var DeptIDS = "";
$("#TreeView1").find("input[type='checkbox']").each(function (i) {
var checked = $(this).attr("checked");
if (checked == true) {
DeptIDS = DeptIDS + "," + $(this).attr("title").toString();
}
});
}
View Code
$(document).ready(function () {
$("input[type='checkbox']").bind("click", CheckSub);
});
ASP.Net 2.0 Treeview自动生成的Html脚本结构如下:
<div> //树
<table/> //节点
<div/> //节点的子节点,里面的内容是一个或多个<table/><div/>
</div>
因此是<table/><div/>构成一个节点,但很难明确的在DOM中确定一个节点,原因如下:
1. 其ID或Name是顺序排列的,命名规则如下: 树ID + “n” + 节点序号,例如 MyTreen0
商业的TreeView一般在ID中包含层次信息,如: MyTreeNode1_1_2 表示树的1.1.2那个节点,分析起来很容易
2. 上面描述的节点命名的ID,是分配给<table/>里的<A/>也就是显示 加号 减号的那个链接元素,由于该元素在<table/>中,因此给分析带来了难度
3. 叶子节点没有上面所描述的<table/>里的那个<A/>
用当前选中的checkbox的ID MyTreen0Checkbox去掉 checkbox(替换为Nodes) 得到的是节点的node的ID MyTreen0Nodes
再用这个节点的ID来获取其孩子是checkbox的所有ID并进行相应的操作