Javascript 访问Ext JS树中树节点的叶子

Javascript 访问Ext JS树中树节点的叶子,javascript,extjs,nodes,treenode,Javascript,Extjs,Nodes,Treenode,我正在使用ExtJS库创建我的应用程序。我有一个树面板,它有树节点和子树节点。这些树节点有我希望能够访问的叶子。我已经搜索了一段时间,但找不到属性函数来访问leafs:( 下面是一些代码: var i; var j = 0; var selectedLayers = new Array(); while(layerRoot.lastChild.hasChildNodes()){

我正在使用ExtJS库创建我的应用程序。我有一个树面板,它有树节点和子树节点。这些树节点有我希望能够访问的叶子。我已经搜索了一段时间,但找不到属性函数来访问leafs:(

下面是一些代码:

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);
vari;
var j=0;
var selectedLayers=新数组();
while(layerRoot.lastChild.hasChildNodes()){
警报(layerRoot.lastChild.firstChild);
对于(i=0;i
我尝试了layerRoot.lastChild.firstChild.childNodes,但这不起作用,因为layerRoot.lastChild.firstChild的子节点是叶子:(。非常感谢您的时间和反馈


elshae

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

您应该查看TreePanel,我认为最新的ext版本(3.3)中可能不推荐使用TreeGrid。它有大量的get/set/traversal函数,请在这里的API中查看:

我厌倦了使用cascade函数,它不是我想要的,也可能我就是不懂。下面是我做的:while(layerRoot.lastChild.hasChildNodes()){layerRoot.lastChild.firstChild.cascade(function()){//if(this.ui.isChecked()){alert(this.attributes.text+“已选中”);//};问题是this.attributes.text返回父级,this.attributes.geoserver.text返回null我忘了添加一点,即传递到
cascade
的函数的返回值决定它是否继续向下遍历树。:)谢谢!它现在肯定会遍历每个叶,不过有一点小问题:-/{警报(已选中node.attributes.text+);}返回未定义,这是为什么?哦,我只是保留了
node.attributes.text
,因为这是您以前拥有的,我认为它是用户配置的值。如果您想在节点中输入文本,您可以执行
node.text
。哇!非常感谢Kenny!我已经做了一天了,如果不是为了您,我永远不会得到它.现在一切正常:)