jquery tree对象,想获取某一节点在整棵树中的序列号

jquery tree对象,想获取某一节点在整棵树中的序列号,第1张

按zTree自带的那个例子,它有一个json数组zNodes,数组的每一项都有一个唯一的id值。

所以可以

var treeObj = $fnzTreegetZTreeObj("tree");

var nodes = treeObjgetSelectedNodes();

if (nodeslength>0) {

var nid = nodes[0]id;

var index = findIdByKeyValue(zNodes,'id', nid);

}

function findIdByKeyValue(obj, key, value)

{

for(vari = 0; i < objlength; i++) {

if(obj[i][key] == value) {

return i;

}

}

return null;

}

大致是这么个意思,太晚了就不测试了,你自己试试

记录项目中关于ztree插件的使用。

实现的功能有:排序、迁移、搜索、删除、右键菜单、重命名、新增。

这里是由于项目需要不同人员的权限不同,右键菜单选项不同;如果你也有这种需求,我觉得这里有两种实现方式,一是像这里写的,点击右键时去后代判断,根据判断结果再去显示;二是在获取树的信息的时候,把判断所需要的必要参数直接放在json里一块返回来,这样前台只需要直接判断就行了。

实现的效果是:输入框内只要有输入变化,就会执行一次搜索方法

火狐有一个bug,就是假如树中含有一个名字为“haha”的节点和名字为“哈哈”的节点,这时你用中文输入法去打“哈”这个字,发现只能输入英文。。扯远了,当然这个可以不做。重点是搜索方法。

其实获取到含有搜索关键字的所有节点很简单,ztree已经封装好了,就是getNodesByParamFuzzy()。

但是,想要的效果是,执行下一次搜索时,要把上一次搜索展开的节点全都关闭,再去展开这种的符合条件的节点。

按道理讲,也很简单,调用expandAll(false)就可以将节点都关闭,然后再去展开符合条件的节点就行了。

但是这样写了以后,发现上次搜索展开的节点并不会全部关闭,而是有的关闭了,有的还是展开的。

在网上搜了很久,在ztree的github项目的issue中找到了一点线索,说展开和关闭都是有动画的。

我想可能是前面的关闭所有节点还没有执行完,与后面的展开节点冲突了。

于是就去api里找,发现有expandSpeed这个参数设置,将动画关闭,这个bug竟然好了。

具体的关于dom的内部原理我不了解。

这里实现的效果是:鼠标移动到某个节点上时,节点后面会出现一个图标,点击图标,实现something

<script>

function filter(node) { //过滤器直选中2级节点累加

return (nodelevel == 2 && nodechecked == true);

}

var setting = { //设置

check: {

enable: true

},

callback: {

onCheck: onCheck

}};

function onCheck(e, treeId, treeNode){ //这是将所有选中节点的名字 用,分割做拼接 用于持久化到数据库

var zTree = $fnzTreegetZTreeObj("tree")getNodesByFilter(filter);

var choose = "";

for (var i=0;i<zTreelength;i++) {

if(zTree[i]name !=null)

choose +=(i == (zTreelength-1))zTree[i]name:zTree[i]name+",";

}

$("#ztreesnames")val(choose);

treeIds();

}

function treeIds(){ //这是将选中的节点的id用;分割拼接起来,用于持久化到数据库

var zTreeO = $fnzTreegetZTreeObj("tree")getNodesByFilter(filter);

var idListStr = "";

for (var i = 0; i < zTreeOlength; i++) {

if (zTreeO[i]id != null) {

idListStr+= (i == (zTreeOlength-1))zTreeO[i]id:zTreeO[i]id+";";

}

};

$("#ztreeids")val(idListStr);

以上就是关于jquery tree对象,想获取某一节点在整棵树中的序列号全部的内容,包括:jquery tree对象,想获取某一节点在整棵树中的序列号、ztree树的使用、ztree怎么获取节点选中变化的节点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9730131.html

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

发表评论

登录后才能评论

评论列表(0条)

保存