您的位置:首页 > 其它

zTree模糊搜索

2017-07-29 17:23 459 查看
根据搜索的值重新显示整个zTree

1、输入框:

<div class="input-group" style="float: left; width: 200px; margin-left: 50px;">
<input id="inputChatGroupName" type="text" class="form-control" placeholder="请输入群名称">
<span class="input-group-addon"><span class="glyphicon glyphicon-search"></span></span>
</div>

2、js代码:
$("#chatGroupSerarchBtn").click(function() {
    var searchValue = $("#inputChatGroupName").val();
    doQueryAlg4Name(searchValue);
});

function doQueryAlg4Name(value) {
    var treeObj = $.fn.zTree.getZTreeObj("leftTree"); // leftTree 为树的ID
    var allNode = treeObj.transformToArray(treeObj.getNodes()); // 获取所有节点
    treeObj.hideNodes(allNode); // 隐藏掉所有节点
    
    // 根据节点数据的属性搜索,获取条件模糊匹配的节点数据 JSON 对象集合
    // 下面是查询属性为name中模糊匹配到值value的节点
    nodeList = treeObj.getNodesByParamFuzzy("name", value, null);
    nodeList = treeObj.transformToArray(nodeList); // 将 zTree 使用的标准 JSON 嵌套格式的数据转换为简单 Array 格式。
    for(var n in nodeList){
       findParent(treeObj,nodeList
);
    }
    treeObj.showNodes(nodeList); // 指定被显示的节点 JSON 数据集合
    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);
    }
}


3、需要加上下面的js引用:
<script type="text/javascript" src="/js/jquery.ztree.core-3.5.min.js"></script>
<script type="text/javascript" src="/js/jquery.ztree.exhide-3.5.min.js"></script>第一个js没有引用,则不会生成zTree。
第二个js不引用,会报像 hideNodes 不是函数的错误。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息