花了一个多星期,终于完成了这个完整的功能,今天周五是时候总结下加深理解了。 项目要实现的功能: 将树形目录发布到发布库, 若是根目录,没有发布,连同自己和下面所有的子目录们全部发布; 不是根目录,判断父目录是否已经发布,未发布,连同自己全部发布;已发布,追加 转化为节点就是:将节点复制另一个已知根节点(发布库)之下,复制之前先判断下,按正常人的思维加就行了 逻辑就不说了,我现在都记不清了到底有多少逻辑在里面,涉及到各种判断,递归拼接属性值的,在此只记录下用的非常多的几个属性和方法,假设当前节点叫Node,json代表标准的json格式数据 一、节点treeNode操作 1、获取子节点 node.children 这是属性不是方法,返回节点的子节点数据集合Array(JSON),判断直接用if(node.children)
2、获取父节点 Node.getParentNode(); 返回父节点对象,根节点的话返回null 3、是否是父节点 Node.isParent 就是有咩有儿子 4、节点在哪一级 Node.level,0可以判断根节点,后面依次+1 5、节点名 Node.name 二、zTree的方法 1、获取复选框被勾选的节点 zTree.getCheckedNodes(checked) 返回Array(JSON) 2、获取被选中的节点 zTree.getSelectedNodes() 注意和1的区别,返回Array(JSON) 3、根据匹配的属性和值对,在指定节点下搜索 zTree.getNodesByParamFuzzy(key,value,Node) 比如我要找发布库这个节点就是 var fbkNode = zTree.getNodesByParamFuzzy("name", "发布库", null) 我又要在发布库节点下找框架集这个节点 var kjjNode = zTree.getNodesByParamFuzzy("name", "框架集", fbkNode[0]) 注意返回的都是节点数据集合 4、获取节点及其所有子节点,子节点的子节点的子节点 zTree.transformToArray(Node) 返回包括本节点在内的所有子节点的集合,非常方便