访问Ext JS树中TreeNode的叶子

时间:2010-10-20 15:40:29

标签: javascript extjs nodes treenode

我正在使用Ext JS库来创建我的应用程序。我有一个树面板,有树节点和子树节点。这些树节点有我希望能够访问的叶子。我一直在寻找,但找不到属性的功能来访问叶子:(

有些代码在这里:

var i;
var j = 0;
var selectedLayers = new Array();
                                while(layerRoot.lastChild.hasChildNodes()){
                                    alert(layerRoot.lastChild.firstChild);
for(i = 0; i < layerRoot.lastChild.firstChild.childNodes.length; i++){
                                        if(layerRoot.lastChild.firstChild.childNodes[i].isSelected()){
                                            selectedLayers[j] = layerRoot.lastChild.firstChild.childNodes[i].attributes.text;
                                            alert(selectedLayers[j]);
j++;
} 
}

                                    layerRoot.lastChild.removeChild(layerRoot.lastChild.firstChild);
}
layerRoot.removeChild(layerRoot.lastChild);

我已经尝试了layerRoot.lastChild.firstChild.childNodes,但这不起作用,因为layerRoot.lastChild.firstChild的子节点是叶子:(。非常感谢您的时间和反馈。

elshae

2 个答案:

答案 0 :(得分:1)

我刚刚开始使用TreePanel,我认为你必须编写你的函数来遍历树并使用leaf属性测试节点是否为叶子。如果您想要在叶子上执行特定功能,则可以使用cascade()自动遍历树,沿途测试leaf属性并执行代码。

答案 1 :(得分:0)

您应该查看TreePanel,我认为TreeGrid可能会在最新的ext版本(3.3)中弃用。它有大量的get / set / traversal函数,请在API中查看:http://dev.sencha.com/deploy/dev/docs/?class=Ext.tree.TreePanel