【zTree】zTree展開樹節點


  今天在做zTree樹的時候想着將第一級tree展開,於是利用下面方法:

/**
 * 展開樹節點的第一層
 */
function openFirstTreenode(){
  // 獲取樹對象
    var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
    /* 獲取所有樹節點 */
    var nodes = treeObj.transformToArray(treeObj.getNodes());
    //當再次點擊節點時條件不符合,直接跳出方法
    // 遍歷樹節點設置樹節點為選中
    for (var i = 0, length_1 = nodes.length; i < length_1; i++) {
        if(nodes[i].level == 0){
            alert(nodes[i].open)
            nodes[i].open = true;
        }
    }
}

 

  根據ztree的官網介紹,open屬性是設置是否展開此節點,level是樹的等級。可是發現這種方法只能展開除一級之外的其他節點,對根節點卻不生效,百度找到以下方法:

 

下面會直接展開第一級樹:

/**
 * 展開樹節點的第一層
 */
function openFirstTreenode(){
  // 獲取樹對象
    var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
    /* 獲取所有樹節點 */
    var nodes = treeObj.transformToArray(treeObj.getNodes());
    //展開第一級樹
    treeObj.expandNode(nodes[0], true);
}

 

 

效果:

 

 

 

 

如果想展開樹的所有節點,需要以下JS:

/**
 * 展開樹的所有節點
 */
function openAllTreenode(){

    // 獲取樹對象
    var treeObj = $.fn.zTree.getZTreeObj("treeDiv");
    /* 獲取所有樹節點 */
    var nodes = treeObj.transformToArray(treeObj.getNodes());
    // 展開除第一級之外的其他節點
    for (var i = 0, length_1 = nodes.length; i < length_1; i++) {
        if(nodes[i].level == 0){
            continue;
        }
        nodes[i].open = true;
    }
    //展開第一級節點
    treeObj.expandNode(nodes[0], true);

}

 

效果:

 

 

 

補充:  expandNode方法的官方解釋:

 

 

展開樹的第一層節點關閉其他層節點的操作

/**
 * 展開樹節點的第一層且關閉其他節點
 */
function openFirstTreenode(){
    // 獲取樹對象
    var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
    /* 獲取所有樹節點 */
    var nodes = treeObj.transformToArray(treeObj.getNodes());
    // 關閉所有節點
    for (var i = 0, length_1 = nodes.length; i < length_1; i++) {
        treeObj.expandNode(nodes[i], false);//第二個參數為false證明是折疊
    }
    //展開第一級節點
    treeObj.expandNode(nodes[0], true);//第二個參數為true證明是展開
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM