zTree模糊查询,匹配则显示父子节点,否则隐藏

var hiddenNodes = []; //用于存储被隐藏的结点
    var nodeList;
    //过滤ztree显示数据
    function filter() {
        显示上次搜索后背隐藏的结点
        //zTreeObj.showNodes(hiddenNodes);

        查找不符合条件的叶子节点
        //function filterFunc(node) {
        //    var keywords = $("#keyword").val();
        //    if (node.isParent || node.Name.indexOf(keywords) != -1) return false;
        //    return true;
        //};

        获取不符合条件的叶子结点
        //hiddenNodes = zTreeObj.getNodesByFilter(filterFunc);

        隐藏不符合条件的叶子结点
        //zTreeObj.hideNodes(hiddenNodes);

        //zTreeObj.expandAll(true);

        var allNode = zTreeObj.transformToArray(zTreeObj.getNodes());
        zTreeObj.hideNodes(allNode);

        function filterFunc(node) {
            var keywords = $("#keyword").val();
            if ( node.Name.indexOf(keywords) != -1) return true;
            return false;
        };

        var keywords = $("#keyword").val();
        if (keywords == "") {
            zTreeObj.showNodes(allNode);
            zTreeObj.expandAll(false);
        } else {
            //var nodeList = zTreeObj.getNodesByParamFuzzy("text", keywords, null);
            nodeList = zTreeObj.getNodesByFilter(filterFunc);
            nodeList = zTreeObj.transformToArray(nodeList);
            for (var n in nodeList) {
                if (nodeList.hasOwnProperty(n)) {
                    findParent(zTreeObj, nodeList[n]);
                }
            }
            zTreeObj.showNodes(nodeList);
        }
    }

    function findParent(treeObj, node) {
        treeObj.expandNode(node, true, false, false);
        var pNode = node.getParentNode();
        if (pNode != null) {
            nodeList.push(pNode);
            findParent(treeObj, pNode);
        }
    };
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值