日期:2014-05-16  浏览次数:20359 次

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

------解决方案--------------------
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;//函数执行完成,返回数组
}