<table data-toggle="table"
data-url="/gh/get/response.json/wenzhixin/bootstrap-table/tree/master/docs/data/data1/"
data-click-to-select="true">
<thead>
<tr>
<th data-field="state" data-checkbox="true"></th>
<th data-field="name">Name</th>
<th data-field="stargazers_count">Stars</th>
<th data-field="forks_count">Forks</th>
<th data-field="description">Description</th>
</tr>
</thead>
</table>
function getTreeSiblings(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 getTreeParent(id){
var tr = $("#"+id);
var parents = [];
parents.push(tr);
var pId = tr.attr("pId");
if(pId != undefined){parents = parents.concat(getTreeParent(pId));}
return parents;
}
function getTreeChildren(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(getTreeChildren(tr.find("input:eq(0)").val()));
}
});
}
return children;
}
function chkNode(obj) {
var id = obj.value, chkbox = null;
$.each(getTreeChildren(id), function(i,v){
v.find("input:eq(0)").attr("checked", function(){return obj.checked ? "checked":""});
});
$.each(getTreeParent(id), function(i,v){
if(i > 0){
chkbox = v.find("input:eq(0)");
chkbox.attr("checked", function(){return getTreeChildrenChecked(chkbox.val()) ? "checked":""});
}
});
}
function getTreeChildrenChecked(id){
var chked = false;
$.each(getTreeChildren(id), function(i,v){
chked = v.find("input:eq(0)").attr("checked") == true;
if(chked) {return false;}
});
return chked;
}