bootstrap_tableS树的关联及其他方法实现树选中关联

<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;
}

 

posted @ 2015-12-29 09:12  段德  阅读(203)  评论(0)    收藏  举报