function searchFun() {
var value;
if($("#code2").val()!=null && $("#code2").val()!=''){
value="【"+$("#code2").val()+"】"+$("#productName").val();
}else {
value=$("#productName").val();
}
var allNode = zTreeObj.transformToArray(zTreeObj.getNodes());
zTreeObj.hideNodes(allNode);//隐藏所有节点
hiddenNodes = zTreeObj.getNodesByParamFuzzy("name", value, null);//搜索含有value关键字的节点
hiddenNodes = zTreeObj.transformToArray(hiddenNodes);//转化为数组
for(var n in hiddenNodes){//遍历
findParent(zTreeObj,hiddenNodes[n]);//找到其父节点
}
zTreeObj.showNodes(hiddenNodes);//显示满足的所有节点
/*highlightAndExpand_ztree(hiddenNodes);*/
if (value == "") {
zTreeObj.expandAll(false);
}
}
function findParent(treeObj,node){
treeObj.expandNode(node,true,true,true);//展开treeObj中所有节点并获得焦点
var pNode = node.getParentNode();//获取父节点
findNextNode(node);//后一个节点
findPreNode(node);//前一个节点
if(pNode != null){
hiddenNodes.push(pNode);//
findParent(treeObj,pNode);//递归查询上上一级父节点
}
}
function findNextNode(node) {//获取节点的下一个节点
var nextNode=node.getNextNode();
if(nextNode!=null){
if(nextNode.lvl==1){
return;
}
hiddenNodes.push(nextNode);
var children=nextNode.children;
if(children){
for(var i in children){
hiddenNodes.push(children[i]);
}
}
findNextNode(nextNode);//递归获取
}
} function findPreNode(node) {//获取节点的上一个节点
var preNode=node.getPreNode();
if(preNode!=null){
if(preNode.lvl==1){
return;
}
hiddenNodes.push(preNode);
var children=preNode.children;//获取节点的子节点集合
if(children){
for(var i in children){
hiddenNodes.push(children[i]);
}
}
findPreNode(preNode);
}
} /!**
* 高亮显示并展示
* @param highlightNodes 需要高亮显示的节点数组
*!/
function highlightAndExpand_ztree(highlightNodes) {
//先把全部节点更新为普通样式
for(var i = 0; i < highlightNodes.length; i++) {
highlightNodes[i].highlight = false;
zTreeObj.updateNode(highlightNodes[i]);
}
//把指定节点的样式更新为高亮显示,并展开
if(highlightNodes != null) {
for(var i = 0; i < highlightNodes.length; i++) {
//高亮显示节点,并展开
highlightNodes[i].highlight = true;
var t = highlightNodes[i].name;
t = "span style='color:red'" + t + "</span";//改变颜色
highlightNodes[i].name = t;
zTreeObj.updateNode(highlightNodes[i]);//执行修改
zTreeObj.expandNode(highlightNodes[i], true, true, true);
}
}
}

zTree模糊搜索,显示全部节点和高亮显示的更多相关文章

  1. ztree 展开一级节点 | ztree只显示到二级目录

    // 默认展开一级节点var nodes = tree.getNodesByParam("level", 0);for (var i = 0; i < nodes.lengt ...

  2. 关于ztree打开关闭所有节点,选中指定id节点

    var isOneByOneExpand=false;//是否递归展开 //展开节点 function expendNode(nodeId){ var node = treeObj.getNodeBy ...

  3. {二逼小青年的记事簿}为什么treelist不会显示子节点的文字?

    <TreeView Name="treeView" DockPanel.Dock="Left" MinWidth="200" > ...

  4. Devexpress TreeList控件绑定显示父子节点对像

    今天一位同事咨询Devexpress TreeList控件绑定自动显示父子节点对像,但结果是不会显示带父子节点关系,而是将所有的节点作为父节点显示出来了,对像类的代码如下 public class I ...

  5. zTree实现删除树节点

    zTree实现删除树节点 1.实现源码 <!DOCTYPE html> <html> <head> <title>zTree实现基本树</titl ...

  6. zTree实现更新根节点中第i个节点的名称

    zTree实现更新根节点中第i个节点的名称 1.实现源码 <!DOCTYPE html> <html> <head> <title>zTree实现基本树 ...

  7. zTree实现获取一级节点数据

    zTree实现获取一级节点数据 1.实现源码 <!DOCTYPE html> <html> <head> <title>zTree实现基本树</t ...

  8. Ztree _ 横向显示子节点、点击文字勾选、去除指定元素input的勾选状态

    前些天项目需要树结构表现数据,需求ztree就能满足所以直接使用ztree只是踩了些小坑... 1.ztree子节点横向显示(下图): 效果说明:第三级子节点按需求横向显示其他竖向显示,每行最多显示5 ...

  9. jquery Ztree v3.5 实例2 自定义显示在节点前的图片

    显示效果如下: 代码如下: <html> <head><title></title></head> <script type=&quo ...

随机推荐

  1. [C#]使用dnSpy对目标程序(EXE或DLL)进行反编译修改并编译运行

    本文为原创文章.源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称.作者及网址,谢谢! 本文使用的工具下载地址为: https://github.com/cnxy/dnSpy/arc ...

  2. source is null for getProperty(null, "cpmodel")异常结局

    org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderExce ...

  3. idea for Mac 日常配置&快捷键

    配置: 1.jdk:file > project structure -- Project SDK; 快捷键: geter adn seter :command+n command+点到具体方法 ...

  4. Ani动态光标格式解析

    数据结构: Ani文件中的数据是按区段存放的,区段数据结构如下: 标识符(4字节ASCII),数据长度(一个DWORD),数据 按照此规则来看Ani文件,文件起始12字节可以理解为标准文件头,除数据长 ...

  5. Java8 HashMap源码分析

    java.util.HashMap是最常用的java容器类之一, 它是一个线程不安全的容器. 本文对JDK1.8.0中的HashMap实现源码进行分析. HashMap使用位运算巧妙的进行散列并使用链 ...

  6. 项目实战9—企业级分布式存储应用与实战MogileFS、FastDFS

    企业级分布式存储应用与实战-mogilefs 环境:公司已经有了大量沉淀用户,为了让这些沉淀用户长期使用公司平台,公司决定增加用户粘性,逐步发展基于社交属性的多样化业务模式,决定开展用户讨论区.卖家秀 ...

  7. 常用接口简析1---IEnumerable、IEnumerator简析

    常用接口的解析(链接) 1.IEnumerable深入解析 2.IComparable.IComparable接口解析 3.IList.IList接口解析      引言: IEnumerable和I ...

  8. Python之登录接口

    要求 1.输入用户名密码2.认证成功后显示欢迎信息3.输错三次后锁定 思路 没有数据库,这里使用本地文件,一共需要两个文件:       黑名单的文件:黑名单里检测,不让登录     用户信息文件:将 ...

  9. thinkphp使用foreach遍历的方法

    我们在做一些需求的时候可能会对遍历的上限有一定的要求,这时候就需要对上限进行限定 首先使用foreach遍历的输出数组相比较于volist功能较少 volist标签主要用于在模板中循环输出数据集或者多 ...

  10. strlen 与 sizeof

    #include<stdio.h>#include<string.h>#include<string>#include<iostream>using n ...