有一个根节点,下面有三个子节点(如fruit,bread,meat),
我想通过查询条件(假如输入meat),那么就只显示meat这个节点,而fruit和bread这两个节点就被隐藏了,
看了API,好像只有remove()这个方法才能做到,
想请教各位大侠有没有别的方法?

解决方案 »

  1.   

    这个直接隐藏的话,display就可以了吧,remove之后,如果用户再查另外的那还不得重新再写一遍,这样多麻烦的,可以进行遍历节点,把需要查询的显示,把不需要的隐藏了就好了~~
      

  2.   

    你说的用户需求很对,但是没有treeNode下是没有display这个方法啊,我是想单纯隐藏某个节点,而不是整个根下面的全部节点哦。
      

  3.   

    http://blog.csdn.net/flyz0001/article/details/6586929看一下这个人的论坛试试有帮助不,有挺多这方面的文章,不懂Extjs的,没有办法提建议了~~
      

  4.   


    额。。这个我已经看过了,里面就是没有这个方法实现的,估计treepanel没有办法实现这样的操作吧。
      

  5.   

    理论上应该是可以实现的,DOM树里面都有办法删除子节点,Extjs只会把方法变得更简单,你等等看有大神来帮你解答吧
    你可以把你之前写过的代码一起贴上来,那样别人看起来毕竟容易,改起来总比写来的容易~~
      

  6.   

    额。。应该不用代码也很清晰我想干什么吧,我就简单贴上去了。
    for(var i=0;i<node.length;i++){
       if(node[i].text == Ext.getCmp(idPrefixFindCmdtyInfoSrchCri +'type').getValue()){
                 node[i].expand();
                     }else{
                     //如果节点不是我想要的,就隐藏它,代码如何实现
                     }             }
      

  7.   

    node[i].parentNode.removeChild(node[i]); 试试这样~~不过在删除的时候,因为子节点个数一直在减少,所以node.length这个判断条件也要一直在变,因为你删一个节点之后,就不会再次执行到(node.length-1)这个节点了,如果不做处理,会出错的~
      

  8.   

    是啊,我就是用过这样的方法去处理了,就是因为node.length会变,所以就不好处理,不过还是谢谢你这么用心的回复我,我结贴了,应该这个是做不到的。