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 查找所有的叶子节点的更多相关文章

  1. Jquery EasyUI Combotree只能选择叶子节点且叶子节点有多选框

    Jquery EasyUI Combotree只能选择叶子节点且叶子节点有多选框 Jquery EasyUI Combotree单选框,Jquery EasyUI Combotree只能选择叶子节点 ...

  2. 742. Closest Leaf in a Binary Tree查找最近的叶子节点

    [抄题]: Given a binary tree where every node has a unique value, and a target key k, find the value of ...

  3. jquery 父,子,兄弟节点获取

    jquery 父,子,兄弟节点获取 jQuery.parent(expr)           //找父元素 jQuery.parents(expr)          //找到所有祖先元素,不限于父 ...

  4. jquery zTree异步搜索的例子--搜叶子节点

    参考博客:https://www.cnblogs.com/henuyuxiang/p/6677397.html 前台代码 <%@ page language="java" c ...

  5. jquery Ztree v3.5 实例2 自定义显示在节点前的图片

    显示效果如下: 代码如下: <html> <head><title></title></head> <script type=&quo ...

  6. jquery zTree异步搜索的例子--搜全部节点

    参考博客: https://segmentfault.com/a/1190000004657854 https://blog.csdn.net/houpengfei111/article/detail ...

  7. bootstrap jQuery Ztree异步载入数据,check选择&amp;可加入、改动、删除节点

    效果图: 一.下载zTree插件 地址:http://www.ztree.me 二.html代码 <link href="../Scripts/zTree/css/zTreeStyle ...

  8. Z-tree 统计每一父节点的叶子节点数(看这一篇就够了)

    最近刚走出校园的我找到了第一份工作,在入职考核中就遇见了一道Z-tree的试题 这道题目本身是不难的,但是我第一次接触这个插件而且还把解决问题的方向搞错了,弄的我好几天都很难受. 弄得我都开始怀疑人生 ...

  9. B+树叶子节点数据如何存储,以及如何查找某一条数据

    MySQL索引背后的数据结构及算法原理 https://www.kancloud.cn/kancloud/theory-of-mysql-index  非常好 根据一条sql  如何查看索引结构等信息 ...

随机推荐

  1. android学习笔记28——Activity生命周期

    Activity生命周期 Activity的活动状态由android已Activity栈的形式管理,当前活动的Activity位于栈顶.随着不同应用的运行,每个Activity都有可能从活动状态转入非 ...

  2. 单源最短路径——dijkstra算法

    dijkstra算法与prim算法的区别   1.先说说prim算法的思想: 众所周知,prim算法是一个最小生成树算法,它运用的是贪心原理(在这里不再证明),设置两个点集合,一个集合为要求的生成树的 ...

  3. 黄聪:NaviCat通过Http方式连接服务器的MySQL数据库(转)

    首先到NaviCat官网上去下载最新版本的NaviCat.安装完成后,打开NaviCat,如下图所示: 然后点击左上角的连接,弹出新键连接信息,如下图所示: 在主机名IP地址那里填写LocalHost ...

  4. Report_客制化报表输出Excel后去0问题(案例)

    2014-02-01 Created By BaoXinjian

  5. HDU Count the string+Next数组测试函数

    链接:http://www.cnblogs.com/jackge/archive/2013/04/20/3032942.html 题意:给定一字符串,求它所有的前缀出现的次数的和.这题很纠结,一开始不 ...

  6. [实变函数]4.1 可测函数 (measurable function) 及其性质

    1 记号 (notations) (1) 广义实数: $\overline{\bbR}=\bbR\cup\sed{-\infty}\cup\sed{+\infty}$. (2) 本章主要考虑     ...

  7. 关于centos7下扩充和减小xfs逻辑分区大小的问题

    比如,我想把/dev/centos/home下的50G变为8G 1.增加 1.1 去掉挂载 umount /home 1.2 减小home, lvreduce -L 8G /dev/centos/ho ...

  8. Java多线程之notifyAll的作用域

    notifyAll()因某个特定锁而被调用时,只有等待这个锁的任务才会被唤醒. package Thread.Wait; import java.util.Timer; import java.uti ...

  9. MS Sql Server 中主从库的配置和使用介绍(转)

    网站规模到了一定程度之后,该分的也分了,该优化的也做了优化,但是还是不能满足业务上对性能的要求:这时候我们可以考虑使用主从库. 主从库是两台服务器上的两个数据库,主库以最快的速度做增删改操作+最新数据 ...

  10. C++学习4

    在C++中,定义函数时可以给参数指定一个默认的初始值.调用函数时,可以省略有默认值的参数.也就是说,如果用户指定了参数的值,那么就使用用户指定的值,否则使用参数的默认值. C++规定,默认参数只能放在 ...