Ztreeは指定されたレベルに展開し、特定の指定されたノードを展開しない正規表現マッチングモードをサポートします
序文
以前は、次の記事では、再帰によって任意のレベルに拡張する方法を実現しました。
その後、特定のノードを展開する必要がないかどうかに遭遇したため、特定のノードを展開せずに階層ノードを展開できるように、前回の記事にいくつかの変更を加えました。
余談:①この手書きのztreeノートが多くの人に再版され、再版されたときにこれに基づいて変更されるとは思っていませんでしたが、再版するときに、元の著者の技術の共有をサポートしてくれて、みんなが元の著者と記事のアドレスを示してくれることを願っていますそして練習。
実現する方法
正規表現を追加して、元の再帰に一致させます
コード
/**
展开全部ztree树节点
b-(true表示obj参数传入的是ztree对象;false表示传入的是树节点对象)
childnodes-子节点,
l-要展开到哪个层级,大于等于0即可
obj-ztree对象或者节点对象(支持ztree对象传入和节点对象传入)
excludes-排除某些不需要展开的节点的正则表达式
*/
function showztreemenuNum(b,childnodes,l,obj,excludes) {
if(b){
var rootnodes = childnodes.getNodes();
showztreemenuNum(false,rootnodes,l,childnodes,excludes);
}else{
var len=-1;
if(!isNull(childnodes)&&!isNull((len=childnodes.length))&&len>0){
if(l<=childnodes[0].level){
return;
}
for (var i = 0; i < len; i++) {
if(excludes!=null){
if(excludes.test(childnodes[i].name)){
continue;
}
}
obj.expandNode(childnodes[i], true, false, false, true);
var child=childnodes[i].children;
showztreemenuNum(false,child,l,obj,excludes);
}
}
}
}
使い方
ztreeObjはztreeオブジェクトです(zTreeObj = $。fn.zTree.init(dom、config);)
showztreemenuNum(true,zTreeObj,1,null,/东北+|西北+|东南/);