zoukankan      html  css  js  c++  java
  • zTree模糊搜索,显示全部节点和高亮显示

    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);
    }
    }
    }
  • 相关阅读:
    并发编程---守护进程
    并发编程---Process对象的其他属性或方法
    并发编程---开启进程方式---查看进程pid
    并发编程---操作系统
    ie浏览器的css bug
    链接内的图片与文字如何对齐?
    inline元素特性
    最大流EK算法模板
    数据结构 链式表
    运算表达式 栈应用
  • 原文地址:https://www.cnblogs.com/yangqianlong/p/8127202.html
Copyright © 2011-2022 走看看