`
yxc_gdut
  • 浏览: 97458 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

ext js findChild

EXT 
阅读更多
最近做了一个程序模块,根据一棵树查找树节点,树的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之中找不到,希望大家能够互相分享下。
分享到:
评论

相关推荐

    Ext_Tree属性方法

    - **findChild(String attribute, Mixed value)**:查找具有指定属性和值的第一个子节点。 - **findChildBy(Function fn, [Object scope])**:查找满足条件的第一个子节点。 - **getDepth()**:获取当前节点的深度,...

    js树形的文件

    JavaScript(简称JS)是一种轻量级的解释型编程语言,广泛应用于网页和网络应用开发,尤其是在前端领域。在处理文件系统或数据结构时,我们常常需要以树形结构来展示和操作数据。"js树形"这个标签所代表的就是利用...

    PyQt5根据控件Id获取控件对象的方法

    本文将详细介绍如何利用`findChild()`方法来实现这一功能,并提供一些实用的例子来帮助读者更好地理解。 #### `findChild()`方法概述 `findChild()`是PyQt5中的QWidget类提供的一个方法,用于在当前部件及其所有子...

    extjs 总结

    EXTJS 是一种基于 JavaScript 的前端框架,主要用于构建富客户端应用程序。它提供了一套完整的组件库,包括用于创建各种用户界面元素的类,如表格、窗口、菜单、表单等。在EXTJS中,TreePanel是用于展示树形数据结构...

    Delphi遍历某一节点下所有叶节点

    - 如果当前节点不是叶节点且 `findChild` 为 `false`,则根据是否有兄弟节点决定是否回溯到父节点或继续遍历兄弟节点。 3. **递归终止条件**: - 当遍历到叶节点时。 - 当遍历到起始节点且不需要继续搜索子节点...

    JS+CSS相对定位实现的下拉菜单

    代码中还有一些辅助函数,比如findChild,它用于查找给定父元素下的特定子节点。 此外,需要注意的是,由于本文档内容中存在OCR扫描错误,导致代码片段不完整,但可以推断出基本的实现逻辑。实际开发中,需要补全...

    自定义QFileDialog

    在QT编程中,`QFileDialog`是一个非常重要的类,它用于与用户交互,允许他们选择或保存文件或目录。这个类提供了丰富的功能,包括预设的对话框样式、过滤文件类型以及多选文件等。然而,有时候开发人员可能需要根据...

    extjs TreePanel

    - **findChild(attribute, value)**: 查找具有指定属性的第一个子节点。 - **findChildBy(fn, scope)**: 根据自定义函数查找子节点。 - **getDepth()**: 获取当前节点的深度,根节点的深度为0。 - **...

    利用CMakup类实现对XML解析,实现遍历,添加,修改,删除

    CMakup类提供了许多成员函数,如Load、Save、GetRoot、FindChild等,它们分别用于加载XML文件、保存XML文件、获取XML文档的根节点以及查找指定的子节点。例如,你可以使用`Load`函数加载XML文件,然后通过`GetRoot`...

    PHP递归遍历多维数组实现无限分类的方法_.docx

    接下来,我们定义了两个关键的函数:`findChild` 和 `build_tree`。 `findChild` 函数接收两个参数:一个数组 `$arr` 和一个 ID `$id`。这个函数的作用是查找数组中所有 `parentid` 等于给定 `$id` 的元素,并将...

    python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法

    在Python的GUI编程中,PyQt5是一个广泛使用的库,它允许开发者创建具有图形界面的应用程序。本篇文章将深入探讨PyQt5中的基础窗口控件QWidget及其详细使用方法。 QWidget类是PyQt5中所有用户界面对象的基础,无论是...

    C++封装处理XML类

    CMarkup类提供了许多接口,如Parse()用于解析XML文档,FindChild()用于查找子元素,GetText()用于获取元素的文本内容,而SetText()则用于设置元素的文本。 封装CMarkup库时,我们首先需要创建一个名为`XMLProcessor...

    jQuery原理系列-css选择器的简单实现

    在讨论如何用JavaScript实现一个简化版的CSS选择器之前,需要指出原生JavaScript的document.getElementById, document.getElementsByName, 和 document.getElementsByTagName方法在对应的使用场景下比任何手动实现的...

    CMarkupXML

    这个类提供了多种方法来解析XML文档,例如`Init()`初始化对象,`Load()`加载XML文件,`FindChild()`查找子节点,以及`GetText()`获取元素文本等。通过这些方法,我们可以轻松地读取XML文档的结构和内容。 当我们...

    在DELPHI中实现用RZPAGECONTROL实现多标签窗口功能(类似IE8以上)

    在DELPHI编程环境中,开发人员常常需要实现类似浏览器那样的多标签窗口功能,以提供用户更方便的界面操作。RZPageControl是RAIZE组件库中的一个强大工具,它允许开发者轻松创建这样的功能,类似于IE8及更高版本的...

    untitled.zip

    通过`QApplication::instance()-&gt;mainWindow()`可以获取主窗口,使用`findChild`方法可以找到特定的控件,然后通过控件的成员函数进行设置和操作。在实际项目中,这些技术是构建复杂用户界面的基础。

    CMarkup markup 对vc中xml文件进行操作

    if ( markup.FindChild(0, "person") && markup.FindChild(1, "name") ) { markup.SetElementText("name", "Jane Smith"); // 修改name元素的文本 markup.Save("modified_example.xml"); // 保存修改后的XML文件 }...

    使用CMarkup类

    - **遍历XML树**:通过成员函数如FindChild、FindNext等,可以在解析后的XML树中查找和遍历特定的标记。 - **修改XML文档**:CMarkup类支持插入、删除和更新XML元素及其属性,方便对原始文档进行动态修改。 - **...

    Qt自定义/最大化/最小化/关闭 完整例程-按钮跟随界面大小移动

    QPushButton *maximizeButton = findChild*&gt;("maximizeButton"); QPushButton *minimizeButton = findChild*&gt;("minimizeButton"); QPushButton *closeButton = findChild*&gt;("closeButton"); maximizeButton-&gt;...

Global site tag (gtag.js) - Google Analytics