easyui吧 关注:1,652贴子:2,907
  • 2回复贴,共1

求教,Tree 模糊查询定位

只看楼主收藏回复

今天学习tree,对节点进行查询,写了个js,但是只能定位到第一个含有关键词的节点,我想要的效果是点击查询按钮,相当于Ctrl + F 的下一个那样的功能,或者是其他实现,可以找到所有含有关键词的节点


1楼2016-01-07 21:19回复
    //根据节点搜索定位
    function quickposition(value) {
    var search_content = $('#treess').textbox('getText'); //得到搜索的文件
    var roots=$('#DataSource_Tree').tree('getRoots'); //得到tree顶级node
    searchTree(roots, search_content);
    function searchTree(parentNode,searchCon){
    var children;
    for(var i=0;i<parentNode.length;i++){ //循环顶级 node
    children = $('#DataSource_Tree').tree('getChildren',parentNode[i].target);//获取顶级node下所有子节点
    if(children){ //如果有子节点
    for(var j=0;j<children.length;j++){ //循环所有子节点
    if($('#DataSource_Tree').tree('isLeaf',children[j].target)){ //判断子级是否为叶子节点,即不是父节点
    if(children[j].text.indexOf(searchCon)>=0){ //判断节点text是否包含搜索文本
    selectNode(children[j]); //设置此节点为选择状态
    expandParent(children[j]); //设置此节点所有父级展开
    break;
    }
    }
    }
    }else{
    if(parentNode[i].text.indexOf(searchCon)>=0){
    selectNode(parentNode[i]);
    expandParent(parentNode[i]);
    break;
    }
    }
    }
    };
    function selectNode(node){
    $('#DataSource_Tree').tree('select',node.target);
    };
    function expandParent(node){
    var parent = node;
    var t = true;
    do {
    parent = $('#DataSource_Tree').tree('getParent',parent.target); //获取此节点父节点
    if(parent){ //如果存在
    t=true;
    $('#DataSource_Tree').tree('expand',parent.target);
    }else{
    t=false;
    }
    }while (t);
    };
    }


    2楼2016-01-08 08:32
    回复
      楼主,你这能够实现定位吗?
      我拉取过来用不了


      IP属地:四川3楼2018-05-29 13:32
      回复