Как получить дочерний элемент в ExtJS 4 - PullRequest
7 голосов
/ 19 июля 2011

Как получить все дочерние элементы или идентификатор Panel в ExtJS 4?

Ответы [ 2 ]

15 голосов
/ 19 июля 2011

Я написал эту функцию для вас. Я думаю, что это поможет вам. function getAllChildren (panel) { /*Get children of passed panel or an empty array if it doesn't have thems.*/ var children = panel.items ? panel.items.items : []; /*For each child get their children and concatenate to result.*/ Ext.each(children, function (child) { children = children.concat(getAllChildren(child)); }) return children; } Он принимает панель (контейнер) в качестве параметра и возвращает все дочерние элементы и дочерние элементы рекурсивно.

EDIT Это вернет идентификаторы детей. ИСПОЛЬЗУЕТ ПРЕДЫДУЩУЮ ФУНКЦИЮ - getAllChilden

function getAllChildenIds(panel) {
  //*Get all child items. \*/
 var children = getAllChilden(panel);
 //*Replace items with their ids.\*/
 for (var i=0, l=children.length; i < l; i++) {
   children[i] = children[i].getId();
 }
 return children;
}
10 голосов
/ 28 ноября 2012

Просто вызовите query () на вашей панели, который вернет массив всех дочерних элементов, которые соответствуют необязательному селектору. т.е. panel.query ()

...