代码之家  ›  专栏  ›  技术社区  ›  Mickey Cheong

ExtJS相当于JQuery的子级?

  •  3
  • Mickey Cheong  · 技术社区  · 16 年前

    我尝试使用select(“~*”)在ExtJS中实现children函数,但效果不太好。

    <div>
        <span>
            <img/>
            <img/>
        </span>
        <span>
            <img/>
            <img/>
        </span>
        <span>
            <img/>
            <img/>
        </span>
    </div>
    

    事实上,我只想要直系子女的数量。如果选择正确,我可以对CompositeElement执行getCount()。

    干杯 米奇

    4 回复  |  直到 16 年前
        1
  •  6
  •   Mike Sickler    16 年前

    如果您可以识别家长,那么您可以这样做来获取孩子:

    <div id='mydiv'>
        <span>
            <img/>
            <img/>
        </span>
        <span>
            <img/>
            <img/>
        </span>
        <span>
            <img/>
            <img/>
        </span>
    </div>  
    

        function getChildren(parentId) {
          var kids = Ext.get(parentId).select('*');
          kids = kids.filter(function(el) {
                return el.parent().id == parentId
          });
          return kids;
        }      
    

    以你为例,, getChildren('mydiv').getCount() 将返回3。

        2
  •  1
  •   Thiem Nguyen    14 年前

    我尝试使用select(“~ *是的,只是效果不好。

    var children = Ext.get("myDiv").query("> *");
    

    <div id='mydiv'>
        <span>
            <img/>
            <img/>
        </span>
        <span>
            <img/>
            <img/>
        </span>
        <span>
            <img/>
            <img/>
        </span>
    </div>  
    

    变量子元素现在将是直接后代HtmleElement的数组(在本例中为3个跨度)。

        3
  •  0
  •   bn.    16 年前

    也许您可以提供所需DOM元素的表示形式,以供选择,但是,如果我正确理解您的问题,我认为您希望使用 Ext.Element .

    Ext.CompositeElement ,您可以从中访问所有方法 Ext.Element.select , Ext.Element.parent Ext.Element.query , Ext.Element.next ,等等,您应该可以访问所需的任何元素。

    见: http://www.extjs.com/deploy/dev/docs/source/Element.fx.html#cls-Ext.Element

    Servus,

        4
  •  0
  •   taox    13 年前

    如果你只想得到孩子的数量,你可以简单的使用

    Ext.select('div span').getCount();