最近做了一个程序模块,根据一棵树查找树节点,树的id是js自己生成的,所以我就选用其他方式来查找树节点
var node = TreePanel.root.findChild( String attribute, Mixed value ) ;
但是我调用了方法之后 火狐一直报错 node为null;
后来安装了spket之后 翻看源代码
findChild : function(attribute, value, deep){
return this.findChildBy(function(){
return this.attributes[attribute] == value;
}, null, deep);
},
/**
* Finds the first child by a custom function. The child matches if the function passed returns <code>true</code>.
* @param {Function} fn A function which must return <code>true</code> if the passed Node is the required Node.
* @param {Object} scope (optional) The scope (<code>this</code> reference) in which the function is executed. Defaults to the Node being tested.
* @param {Boolean} deep (Optional) True to search through nodes deeper than the immediate children
* @return {Node} The found child or null if none was found
*/
findChildBy : function(fn, scope, deep){
var cs = this.childNodes,
len = cs.length,
i = 0,
n,
res;
for(; i < len; i++){
n = cs[i];
if(fn.call(scope || n, n) === true){
return n;
}else if (deep){
res = n.findChildBy(fn, scope, deep);
if(res != null){
return res;
}
}
}
return null;
},
////////////////////////////////////////////////
findChild : function(attribute, value, deep){
原来还隐含了一个参数deep ,默认为false 只查找到他的子节点,
把他设为true 可以查找到root下的所有子孙节点。
findChild('pid',123,true);
总结:API要尽量与自己用的开发版本相匹配,ext中还有很多函数可用却在api之中找不到,希望大家能够互相分享下。
分享到:
相关推荐
- **findChild(String attribute, Mixed value)**:查找具有指定属性和值的第一个子节点。 - **findChildBy(Function fn, [Object scope])**:查找满足条件的第一个子节点。 - **getDepth()**:获取当前节点的深度,...
JavaScript(简称JS)是一种轻量级的解释型编程语言,广泛应用于网页和网络应用开发,尤其是在前端领域。在处理文件系统或数据结构时,我们常常需要以树形结构来展示和操作数据。"js树形"这个标签所代表的就是利用...
本文将详细介绍如何利用`findChild()`方法来实现这一功能,并提供一些实用的例子来帮助读者更好地理解。 #### `findChild()`方法概述 `findChild()`是PyQt5中的QWidget类提供的一个方法,用于在当前部件及其所有子...
EXTJS 是一种基于 JavaScript 的前端框架,主要用于构建富客户端应用程序。它提供了一套完整的组件库,包括用于创建各种用户界面元素的类,如表格、窗口、菜单、表单等。在EXTJS中,TreePanel是用于展示树形数据结构...
- 如果当前节点不是叶节点且 `findChild` 为 `false`,则根据是否有兄弟节点决定是否回溯到父节点或继续遍历兄弟节点。 3. **递归终止条件**: - 当遍历到叶节点时。 - 当遍历到起始节点且不需要继续搜索子节点...
代码中还有一些辅助函数,比如findChild,它用于查找给定父元素下的特定子节点。 此外,需要注意的是,由于本文档内容中存在OCR扫描错误,导致代码片段不完整,但可以推断出基本的实现逻辑。实际开发中,需要补全...
在QT编程中,`QFileDialog`是一个非常重要的类,它用于与用户交互,允许他们选择或保存文件或目录。这个类提供了丰富的功能,包括预设的对话框样式、过滤文件类型以及多选文件等。然而,有时候开发人员可能需要根据...
- **findChild(attribute, value)**: 查找具有指定属性的第一个子节点。 - **findChildBy(fn, scope)**: 根据自定义函数查找子节点。 - **getDepth()**: 获取当前节点的深度,根节点的深度为0。 - **...
CMakup类提供了许多成员函数,如Load、Save、GetRoot、FindChild等,它们分别用于加载XML文件、保存XML文件、获取XML文档的根节点以及查找指定的子节点。例如,你可以使用`Load`函数加载XML文件,然后通过`GetRoot`...
接下来,我们定义了两个关键的函数:`findChild` 和 `build_tree`。 `findChild` 函数接收两个参数:一个数组 `$arr` 和一个 ID `$id`。这个函数的作用是查找数组中所有 `parentid` 等于给定 `$id` 的元素,并将...
在Python的GUI编程中,PyQt5是一个广泛使用的库,它允许开发者创建具有图形界面的应用程序。本篇文章将深入探讨PyQt5中的基础窗口控件QWidget及其详细使用方法。 QWidget类是PyQt5中所有用户界面对象的基础,无论是...
CMarkup类提供了许多接口,如Parse()用于解析XML文档,FindChild()用于查找子元素,GetText()用于获取元素的文本内容,而SetText()则用于设置元素的文本。 封装CMarkup库时,我们首先需要创建一个名为`XMLProcessor...
在讨论如何用JavaScript实现一个简化版的CSS选择器之前,需要指出原生JavaScript的document.getElementById, document.getElementsByName, 和 document.getElementsByTagName方法在对应的使用场景下比任何手动实现的...
这个类提供了多种方法来解析XML文档,例如`Init()`初始化对象,`Load()`加载XML文件,`FindChild()`查找子节点,以及`GetText()`获取元素文本等。通过这些方法,我们可以轻松地读取XML文档的结构和内容。 当我们...
在DELPHI编程环境中,开发人员常常需要实现类似浏览器那样的多标签窗口功能,以提供用户更方便的界面操作。RZPageControl是RAIZE组件库中的一个强大工具,它允许开发者轻松创建这样的功能,类似于IE8及更高版本的...
通过`QApplication::instance()->mainWindow()`可以获取主窗口,使用`findChild`方法可以找到特定的控件,然后通过控件的成员函数进行设置和操作。在实际项目中,这些技术是构建复杂用户界面的基础。
if ( markup.FindChild(0, "person") && markup.FindChild(1, "name") ) { markup.SetElementText("name", "Jane Smith"); // 修改name元素的文本 markup.Save("modified_example.xml"); // 保存修改后的XML文件 }...
- **遍历XML树**:通过成员函数如FindChild、FindNext等,可以在解析后的XML树中查找和遍历特定的标记。 - **修改XML文档**:CMarkup类支持插入、删除和更新XML元素及其属性,方便对原始文档进行动态修改。 - **...
QPushButton *maximizeButton = findChild*>("maximizeButton"); QPushButton *minimizeButton = findChild*>("minimizeButton"); QPushButton *closeButton = findChild*>("closeButton"); maximizeButton->...