<div class="jiansuo-cont clearfix">
<label for="" class="dis fl">检索:</label>
<input type="text" placeholder="" class="dis fl" id="keyword"/>
<button class="dis fl jiansuo-botton" type="button" οnclick="filter()"></button>
</div>
var zTreeObj;
var setting = {data:{simpleData:{enable:true,idKey:"id",pIdKey:"pId",rootPId:'0'}},
callback:{onClick:function(event, treeId, treeNode){
var id = treeNode.id;
$("#officelist",window.parent.document).attr("src","${ctx}/yywh/tbSyDepartment/list?parent.id="+id+"&parent.departName="+treeNode.name);
}
}
};
//刷新
refreshTree();
function refreshTree(){
$.getJSON("${ctx}/yywh/tbSyDepartment/treeData",function(data){
zTreeObj = $.fn.zTree.init($("#ztree"), setting, data);
});
}
//模糊搜索
var hiddenNodes=[]; //用于存储被隐藏的结点
//过滤ztree显示数据
function filter(){
//显示上次搜索后背隐藏的结点
zTreeObj.showNodes(hiddenNodes);
//查找不符合条件的叶子节点
function filterFunc(node){
var _keywords=$("#keyword").val();
if(node.isParent||node.name.indexOf(_keywords)!=-1) {
return false;
} else {
return true;
};
};
//获取不符合条件的叶子结点
hiddenNodes=zTreeObj.getNodesByFilter(filterFunc);
<%-- hiddenNodes.splice(0,1); --%>
//隐藏不符合条件的叶子结点
zTreeObj.hideNodes(hiddenNodes);
};
效果:(保留所有父节点)