zTree获取当前节点的下一级子节点数实例

zTree获取当前节点的下一级子节点数实例,第1张

使用zTree插件实现树形图中,需要获取当前点击的父节点的子节点数的需求,使用treeNodechildren获取子节点数据集合,使用length方法获取集合长度。

将当前节点的treeNode传入即可调用。

/查找当前节点下一级的子节点数/

function

findNodes(treeNode)

{

var

count;

/判断是不是父节点,是的话找出子节点个数,加一是为了给新增节点/

if(treeNodeisParent)

{

count

=

treeNodechildrenlength

+

1

;

}

else

{

/如果不是父节点,说明没有子节点,设置为1/

count

=

1;

}

return

count;

}

以上这篇zTree获取当前节点的下一级子节点数实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

呵呵,是不是敲字错误闹得?

的确看起来很费解。

大概理解,异步加载每次只加载一级节点,觉得不爽,想全部加载并且展开对吗?

那么我的回答如下:

1、使用了异步加载

又要全部展开这个需求比较矛盾,还不如一次性全部加载后(使用异步加载时也完全可以后台一次性生成全部子孙节点一起加载的),直接全部展开。因为异步加载本来就是为了优化性能,这样的需求异步加载没有什么优势。

2、如果一定要使用,可以利用

onAsyncSuccess

回调在每次异步加载完毕后,利用expandNode

方法将新加载的父节点逐一展开。。这样下去就实现了(在我即将发布的

v32

中将会提供这种 *** 作的Demo)

将“集团-公司-部门-小组”的树状结构的数据库表设计为“id name pId”,这种方式是可以的啊,后台异步加载时,根据id获取其子节点的个数,如果大于0,则设置isParent=true,我们项目中就是这样实现的

代码:

var setting = [{

callback : {

onDrop: onDrop

}

}]

function onDrop(event, treeId, treeNodes, targetNode, moveType){

var id = treeNodes[0]id;//获得被拖拽的节点id

var targetId = targetNodeid;//获得目标id

}

1、getNodeByParam 方法可以找到指定的节点数据

2、selectNode 方法可以选中节点,如果是 checkbox 的勾选,那么请使用 checkNode 方法

希望能帮助到你!

对于zTree树控件,节点的默认提示信息title是节点的name,也就是默认显示节点的名称。你认真了解zTree,不难发现主要是key值在作祟:

view sourceprint

var setting = {

2data: {

3key: {

4title: "s"//这里的s表示节点内的s属性

5},

这里的key内的title默认指向的就是name属性,或者为空,为空的时候也会默认为name属性。

针对这位朋友的问题,其实方法很多:

1、在后台构造属性

在ajax页面内从数据库拿到数据list过后通过new的形式给最终返回的json对象构造一个属性t出来。然后修改setting内key的title指向属性值为t即可。

返回的json对象数据为:

view sourceprint

var zNodes =[

2{ id:1, pId:0, name:"节点搜索演示 1", t:"节点提示信息1", open:true},

3{ id:11, pId:1, name:"关键字可以是名字", t:"节点提示信息2"},

4{ id:12, pId:1, name:"关键字可以是level", t:"节点提示信息3"}

5];

修改setting内对应的key值

view sourceprint

var setting = {

2data: {

3key: {

4title: "t"//这里的s表示节点内的s属性

5},

2、动态修改树节点的属性

当前台给zTree树对象赋值结束后获取所有树节点,然后逐个更新树节点的属性值,示例代码如下所示:

view sourceprint

01$(document)ready(function () {

02$fnzTreeinit($("#treeDemo"), setting, zNodes);

03//获取树对象

04var treeObj = $fnzTreegetZTreeObj("treeDemo");

05//拿到所有树节点

06var nodes = treeObjgetNodes();

07//for循环逐个修改树节点属性

08for(var i = 0;i<nodeslength;i++)

09{

10nodes[i]t = "可以自定义排序";

11//更新节点

12treeObjupdataNode(nodes[i]);

13}

14});

当前如果只是修改部分节点可以在for内加以控制,如果是只更新指定节点可以通过getNodeByParam("属性名称","值",父节点对象)找到指定对象,形如:

view sourceprint

//给节点追加属性

2var treeObj = $fnzTreegetZTreeObj("treeDemo");

3var node = treeObjgetNodeByParam("id", 1, null);

4nodes = "可以自定义排序";

5treeObjupdateNode(node);

以上就是关于zTree获取当前节点的下一级子节点数实例全部的内容,包括:zTree获取当前节点的下一级子节点数实例、ztree 异步加载时,怎么获取子节点、zTree异步加载时,所有节点isParent设为true,点击打开后出现undefined子节点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9311065.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存