大家好,我在做一个树的拖拽并获取其所有的叶子,具体如examples下的two-tree案例那样,我想获取左右树的所有叶子信息,请大家帮帮忙

解决方案 »

  1.   

     function getLeafs(node,Leafs)///获取node下的所有叶节点,调用函数时只传递第一个参数(tree节点对象,传递根节点即可获取tree下所有叶节点)即可
          {
            var leafs;
            if(!Leafs) leafs =new Array();//没有传递第二个参数时初始为新数组
            else leafs=Leafs;
            if(node.leaf) leafs.push(node);//如果是叶节点,加入数组
            if(!node.childNodes || node.childNodes.length==0) return leafs;//没有子节点,返回
            for(var i=0;i<=node.childNodes.length-1;i++)
            {
              getLeafs(node.childNodes[i],leafs);//对每一个子节点进行递归调用将其中的叶节点添加到数组
            }
            return leafs;//函数执行完成,返回数组
          }
      

  2.   


    不好意思啊,昨天没空看呢,
    正题: function getLeafs(node,leafs)是自己定义的吗?我是想不点击树任意地方获取整个树的叶子啊,就好比一个form里面有棵树,我点解提交之后就能获取到真棵树的叶子
      

  3.   

    函数当然是我写的了,直接把tree的根节点作为参数传递进去就可以了(千万不要说你又不知道tree的根节点是什么了,那样你最好先把那些问题搞清楚再说)