ztree节点搜索模糊匹配与精确查找[粘贴即可]

以下主要实现的是ztree模糊搜索节点和精确查找的功能,模糊搜索在数据量较小时效率可以,但是在大批量几万节点时速度卡顿明显,因此使用精确匹配的方式。

1.ztree节点模糊搜索匹配 

showFilterResult:function (value) { var treeObj = $.fn.zTree.getZTreeObj("tree");  var allNode = treeObj.transformToArray(treeObj.getNodes());;  treeObj.hideNodes(allNode);  nodeList = treeObj.getNodesByParamFuzzy("name", value, null);//使用节点的name作为查询参数  nodeList = treeObj.transformToArray(nodeList);  for(var n in nodeList){ findParent(treeObj,nodeList[n]);  } treeObj.showNodes(nodeList);  if (value == "") { treeObj.expandAll(false);  } function findParent(treeObj,node){ treeObj.expandNode(node,true,false,false);  var pNode = node.getParentNode();  if(pNode != null){ //递归得到指定节点的父节点的父节点....直到根节点  nodeList.push(pNode);  findParent(treeObj,pNode);  } } }

2.精确查找节点

var _keywords = searchField.val();
var node=zTreeObj.getNodeByParam('namekey',_keywords,null);
if(node){
    zTreeObj.selectNode(node,false);
}else{
    zTreeObj.cancelSelectedNode();
}

 

你可能感兴趣的:(大前端开发)