ExtJS эквивалент детей JQuery? - PullRequest
3 голосов
/ 26 января 2010

Я пытался реализовать функцию детей в ExtJS, используя select ("~ *"), она просто не работала.

Я просто хочу, чтобы ExtJS возвращал мне набор непосредственных дочерних узлов и игнорировал все узлы под дочерними узлами.

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

На самом деле я просто хочу количество ближайших детей. Если я правильно понял, я могу сделать getCount () для CompositeElement.

Любая помощь будет очень ценится.

Ура, Mickey

Ответы [ 4 ]

6 голосов
/ 26 января 2010

Если вы можете идентифицировать родителя, то вы можете сделать что-то вроде этого, чтобы получить детей:

<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.

1 голос
/ 22 июня 2012

Я пытался реализовать функцию детей в ExtJS, используя select ("~ * "), это просто не сработало.

Я верю, что вы ищете "> *". В ExtJs вы можете сделать:

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

с

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

Переменная потомки теперь будет массивом прямых потомков HTMLElements (в данном случае 3 пролета).

0 голосов
/ 15 ноября 2012

Если вы просто хотите узнать количество детей, вы можете просто использовать

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

В вашем примере возвращается 3.

0 голосов
/ 26 января 2010

Возможно, вы могли бы предоставить представление желаемых элементов DOM, которые будут выбраны, однако, если я правильно понимаю ваш вопрос, я думаю, вы хотите использовать Ext.Element.

С Ext.CompositeElement, у вас есть доступ ко всем методам с Ext.Element. Используя 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,

-bn

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...