2012-02-06 4 views
7

Как узнать, существует ли конкретный ребенок (элемент) на панели с использованием идентификатора дочернего элемента.Как найти ребенка в панели в ExtJs

Скажем, у меня есть родительская панель (id = parentPanel) и несколько панелей в качестве элементов этой родительской панели. Теперь я хотел бы поискать, если панель с идентификатором 'childPanel09' является дочерним элементом родительской панели.

[Возможно, без использования итерации]

Примечание: Я использую ExtJs 3,4

ответ

11

Если вы хотите искать только среди прямых Чайлдс из parentPanel вы можете использовать getComponent:

var childPanel = Ext.getCmp('parentPanel').getComponent('childPanel09'); 
if (childPanel) { 
    alert('yes. child exists'); 
} 

Если вы хотите искать не только среди прямых детей, но и на любом уровне под родительской панелью, вы можете использовать find:

var childPanel = Ext.getCmp('parentPanel').find('id', 'childPanel09')[0]; // [0] because find returns array 
if (childPanel) { 
    alert('yes. child exists'); 
} 
+0

Спасибо человеку. Хотя моя проблема была немного иной, но ваш ответ решил ее. –

2

Ext.Container.find() (из принятого ответа) в порядке as of ExtJS 3.4 (вот что задал вопрос). Однако в ExtJS 4.0 и выше find() был удален в пользу Ext.Container.query(), что и то же самое.