项目中使用到zTree模糊搜索,查看官方API,官方提供的fuzzySearch()方法可以实现模糊搜索,但是当我点击子节点进行查询的时候,怎么也获取不到后台数据,js调试发现获取到的名字中加了span标签,后台无法获取数据。于是在网上查询资料后自己做一个demo。

主要代码

页面代码

<div class="zTreeDemoBackground left">搜索:<input type="text" id="key" class="empty" style="width: 80px;margin-left: 3px;font-weight: normal;"/><ul id="tree" class="ztree"></ul></div>

js代码

ztree初始化

function zTreeOnClick(event, treeId, treeNode) {$("#timing").html($("#Rtime").val());var name=treeNode.name;alert("你点击了:"+name);}var setting = {callback: {onClick: zTreeOnClick},view: {fontCss: setFontCss},data: {simpleData: {enable: true}}};var zNodes =[{ id:1, pId:0, name:"国家", open:true},{ id:11, pId:1, name:"中国"},{ id:111, pId:11, name:"北京"},{ id:111, pId:11, name:"上海"},{ id:111, pId:11, name:"河南"},{ id:111, pId:11, name:"云南"},{ id:12, pId:1, name:"美国",isParent:true},{ id:122, pId:12, name:"华盛顿"},{ id:13, pId:1, name:"日本", isParent:true},{ id:133, pId:13, name:"东京"}];function showIconForTree(treeId, treeNode) {return !treeNode.isParent;};$(document).ready(function(){$.fn.zTree.init($("#tree"), setting, zNodes);document.getElementById("key").value = ""; //绑定事件  key = $("#key");  key.bind("focus", focusKey)  .bind("blur", blurKey)  .bind("propertychange", searchNode)   .bind("input", searchNode); });

隐藏不符合节点

//显示上次搜索后背隐藏的结点zTree.showNodes(hiddenNodes);//查找不符合条件的叶子节点function filterFunc(node){var _keywords=$("#key").val();if(node.isParent||node.name.indexOf(_keywords)!=-1) return false;return true;        };//获取不符合条件的叶子结点hiddenNodes=zTree.getNodesByFilter(filterFunc);//隐藏不符合条件的叶子结点zTree.hideNodes(hiddenNodes);

高亮显示符合条件节点并打开

//搜索节点
function searchNode(e) {  var zTree = $.fn.zTree.getZTreeObj("tree");  var value = $.trim(key.get(0).value);  var keyType = "name";  if (key.hasClass("empty")) {  value = "";  }  if (lastValue === value) return;  lastValue = value; if (value === ""){  updateNodes(false);  return;  }; updateNodes(false);nodeList = zTree.getNodesByParamFuzzy(keyType, value); //调用ztree的模糊查询功能,得到符合条件的节点  updateNodes(true); //更新节点
}  //高亮显示被搜索到的节点
function updateNodes(highlight) {  var zTree = $.fn.zTree.getZTreeObj("tree");  for( var i=0, l=nodeList.length; i<l; i++) {  nodeList[i].highlight = highlight;  zTree.expandNode(nodeList[i].getParentNode(), true, false, false); //将搜索到的节点的父节点展开  zTree.updateNode(nodeList[i]);  }
}  

设置颜色,需要配置view: {fontCss: setFontCss }

function setFontCss(treeId, treeNode) {  return (!!treeNode.highlight) ? {color:"#00ff66", "font-weight":"bold"} : {color:"#333", "font-weight":"normal"};
}

效果图:

搜索结果:

完整demo:https://download.csdn.net/download/f954618482/10452681

ztree官网:http://www.treejs.cn/v3/main.php#_zTreeInfo

zTree实现树的模糊搜索功能相关推荐

  1. Android 利用AutoCompleteTextView实现模糊搜索功能,搜索结果自动提示,识别拼音首字母并转汉字提示

    这里说一下怎么利用 Android 的 AutoCompleteTextView 控件实现模糊搜索功能,AutoCompleteTextView 自带自动提示功能.如果 对自动提示的布局自定义要求比较 ...

  2. 微信小程序搜索php,如何解决微信小程序没有模糊搜索功能

    现在微信小程序有重新推出新的功能,那就是进行模糊搜索,但是很多朋友微信小程序没有模糊搜索功能怎么办,下文小编就为大家带来详细介绍,一起看看吧 现在微信小程序有重新推出新的功能,那就是进行模糊搜索,用户 ...

  3. 小程序实现TreeView树多选功能

    话不多说,先上效果图: 小程序实现Treeview树多选功能 实现思路 源数据结构 首先我们的数据结构大概是: [{"id": "0","name&q ...

  4. 【Vue实践】列表搜索框中模糊搜索功能的两种实现方式

    文章目录 1.Demo演示 2.HTML结构 3.实现 3.1 基于计算属性`computed`实现 3.2 基于侦听器`watch`实现 1.Demo演示 模糊搜索功能是日常开发中常见的一种功能,这 ...

  5. 史上最全,在vue中使用zTree实现树型结构

    最近做了蛮多需求都是在vue里面去操作dom,着实让人头大 需求如下:要求树形结构按照设计稿样式(ztree原本的样式ui接受不了) 鼠标浮动上去的时候,有功能按钮出现,浮在功能按钮上面,出现对应的功 ...

  6. ztree插件树状图

    开发工具与关键技术:MVC 作者:Mr_恺 撰写时间:2019年6月27日 树状图不知道大家有没有做过,要不是做项目,项目中有这个需求,我也没有那么快能接触到这过功能,刚开始的时候对这个功能真的一脸懵 ...

  7. 树形图html插件,前端树形图 -- zTree -- jQuery 树插件

    zTree 是一个依靠 jQuery 实现的多功能 "树插件".优异的性能.灵活的配置.多种功能的组合是 zTree 最大优点. zTree 是开源免费的软件(MIT 许可证).所 ...

  8. 给文本框添加模糊搜索功能(“我记录”MVC框架下实现)

    步骤: 1.在文本框中输入内容时,触发keyup事件: 2.在keyup事件的处理方法中,通过Ajax调用控制器的方法: 3.在控制器方法中,搜索满足条件的数据,这里分页获取数据,且只取第一页的数据, ...

  9. js 实现模糊搜索功能

    最近遇到一个需要前端对已有数据做模糊查询的功能.方法有很多种,个人比较推荐使用正则表达式来实现,下面是我实现的方法: 封装一个公用的方法: //list 是已有的数据,search 是模糊搜索的关键字 ...

  10. 前端实现模糊搜索功能

    一.前言 最近在项目中遇到的业务需求,页面创建时把所有数据都加载了,这种情况下,使用后端SQL语句进行模糊,有点浪费时间,决定使用前端的输入框 + 按钮实现对数据的模糊搜索 二.HTML <di ...

最新文章

  1. 一年暴增1600万程序员!GitHub 2021年度报告发布:中国755万开发者排全球第二
  2. controller实现pdf的下载功能
  3. 小程序下的兼容性问题
  4. LG电子发布旋转双屏5G手机Wing 售价约6800元
  5. python快速移动文件内容到另一个文件夹
  6. ffmpeg滤镜专题2-高斯模糊
  7. gitter 卸载_最佳Gitter渠道:材料设计
  8. 5G 38.300 Rel15 中文版
  9. actions vuex 请求_vue中vuex的actions里面请求接口,提交给mutations报错
  10. 使用espressos idlingresource获得最高的Android测试速度
  11. Python 语言发展历史
  12. CES 2019上芯片巨头们的争夺焦点:光线追踪、“永远”在线PC、汽车
  13. IE8上面的旋转和透明度,利用滤镜属性去处理(兼容css3的transform和rgba())
  14. 鲑鱼回游java游戏_鲑鱼洄游 一段悲壮的落幕
  15. linux的三权分立设计思路和用户创建(安全管理员、系统管理员和审计管理员)
  16. 用于图像语义分割的GAU与PPM
  17. Git之多人协同开发
  18. java-php-python-springboot图书借阅管理系统计算机毕业设计
  19. java EE 项目:Attendance 从一个简单项目看java web 开发的整体布局
  20. 联盟不显示聊天服务器未响应,玩英雄联盟出现程序未响应是怎么回事

热门文章

  1. 改变TMQQ2009版消息提示音
  2. 数据库系统工程师教程 (第三版)前言
  3. hadoop 学习心得
  4. iOS9.3.3骚扰电话拦截黑名单数据库
  5. (四)、Redis删除策略---Redis设计与实现读书笔记
  6. 数据清洗Chap6——数据统计
  7. 三菱5uplc伺服电机指令_PLC中伺服控制指令的应用
  8. 拉普拉斯变换部分公式证明
  9. 敏感词过滤/字符编码
  10. android图片模糊处理