以前使用zTree,不知道有getNodesByParamFuzzy这个模糊查询的方法,所以用了比较笨的方法,比如:功能要求(模糊查询人员姓名),先获得用户输入的名称,然后到数据库或者缓存中去查找,然后重新绑定到zTree;现在通过zTree.getNodesByParamFuzzy(key, value, parentNode)根据节点数据的属性搜索,获取条件模糊匹配的节点数据 JSON 对象集合,Function 参数说明 keyString 需要模糊匹配的属性名称 valueString 需要模糊匹配的属性值 模糊匹配只能针对 String 类型的数据 parentNodeJSON 可以指定在某个父节点下的子节点中搜索 忽略此参数,表示在全部节点中搜索 返回值Array(JSON) 匹配模糊搜索的节点数据集合 如无结果,返回 [ ] 示例代码如下:
1 //模糊查询人员姓名 2 $("#btnSearch").click(function () { 3 var txt = $("#txtUserName").val(); 4 var zTree = $.fn.zTree.getZTreeObj("treeUser"); 5 var node = zTree.getNodesByParamFuzzy("name", txt, null); 6 $("#search").show(); 7 $("#treeUser").hide(); 8 var html = ""; 9 if (txt == "" || node.length == 0) { 10 html = "<tr><td></td><td>暂无数据</td><td></td></tr>"; 11 $(".slist table tbody").html(html); 12 } 13 for (var i = 0; i < node.length; i++) { 14 var node2 = zTree.getNodesByParam("id", node[i].pId, null); 15 var pname = node2 != null ? node2[0].name : ""; 16 html += "<tr><td><input type='checkbox' name='schk' value='" + node[i].id + "' />" + node[i].name + "</td><td>" + node[i].id + "</td><td>" + pname + "</td></tr>"; 17 } 18 $(".slist table tbody").html(html); 19 })