jquery zTree 查找所有的叶子节点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery zTree 查找所有的叶子节点相关的知识,希望对你有一定的参考价值。

jquery zTree 查找所有的叶子节点

// 保存所有叶子节点  10 为初始化大小,并非数组上限
var arrayObj = new Array([10]);

/*
  treeNode:
         根节点
  result:
        用于保存叶子节点的数组
*/
// 获取所有叶子节点
function getAllLeafNodes(treeNode, result) {
    if (treeNode.isParent) {
        var childrenNodes = treeNode.children;
        if (childrenNodes) {
            for (var i = 0; i < childrenNodes.length; i++) {
                if (!childrenNodes[i].isParent) {
                    arrayObj.push(childrenNodes[i]);
                } else {
                    arrayObj = getAllLeafNodes(childrenNodes[i], arrayObj);
                }
            }
        }
    } else {
        arrayObj.push(treeNode);
    }
    return arrayObj;
}

 

常用zTree 操作:

    // 获取树节点
    var treeObj = $.fn.zTree.getZTreeObj("divTreeContainer");
    // 获取树所有的节点
    var nodes = treeObj.getNodes();
   // 通过 tid  获取节点
  var node = treeObj.getNodeByTId(node.tId);

   // 创建一个节点
   var newNode = { id: 1, name:‘wisdo’‘, filePath: ‘http://www.cnblogs.com/wisdo‘};

   // 追加节点
   treeObj.addNodes(parentNode, newNode)
 

 

(function () {
    var treeIndexZTree = {
        //树的配置
        setting: {
            data: {
                key: {
                    //title: "t"
                },
                simpleData: {
                    enable: true
                }
            },
            callback: {

            }
        },

        //存放树的节点
        zNodes: null,

        //初始化
        init: function (zNodes) {
            if (!zNodes) {
                zNodes = treeIndexZTree.getZNoeds();
            }
            treeIndexZTree.zNodes = zNodes; //获取树节点
            treeIndexZTree.setting.callback.onClick = treeIndexZTree.onClick; //绑定鼠标左键单击事件
            treeIndexZTree.setting.callback.onRightClick = treeIndexZTree.onRightClick; //绑定鼠标右键单击事件
            $.fn.zTree.init($("#divTreeContainer"), treeIndexZTree.setting, treeIndexZTree.zNodes); //初始化树
        },

        //鼠标左键单击事件
        onClick: function (event, treeId, treeNode, clickFlag) {
            if (tagAreaChange) {
                tagAreaChange(treeNode);
            }
        },

        //鼠标右键单击事件
        onRightClick: function (event, treeId, treeNode) {
            //$("#divTreeRightMenu").css({ "display": "block", left: event.clientX, top: event.clientY });
        },

        //获取树节点
        getZNoeds: function () {
            return [];
        }
    };

    //dom创建完成之后执行
    $(function () {
        //设置标签点树样式
        $("#divTreeContainer").css({ "overflow-y": "auto" });
        $.ajax({
            url: "/Wisdo/Home/GetTree",
            data: { level: true },
            type: "get",
            async: true,
            dataType: ‘json‘,
            success: function (obj) {
                //debugger;
                treeIndexZTree.init(obj.data);//ztree初始化
                refreshTree(); // 追加子节点,刷新树
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                 console.log(JSON.stringify(XMLHttpRequest));
                console.log(XMLHttpRequest.status);
            }
        });
    });
})();

 

    

 

zTree 官网 API开发文档:http://www.ztree.me/v3/api.php

以上是关于jquery zTree 查找所有的叶子节点的主要内容,如果未能解决你的问题,请参考以下文章

jquery 怎样获得选中的ztree项

jQuery+zTree加载树形结构菜单

jquery中常用的节点查找,属性过滤

jQuery+zTree加载树形结构菜单

Jquery-zTree的基本用法

Jquery-zTree的基本用法