用來找特點的所有容器(Ext.container.Container)或是通過Ext.ComponentManager找特定的所有組件
1.當找組件的時候,相當於調用Ext.ComponentQuery.query()
可以接收的參數有
1)xtype
//找xypte為panel的所有組件
var panelsArray = Ext.ComponentQuery.query('panel');
2)組件的itemId或id的屬性值
找所有id為myct的panel組件,注意空格表示與操作(&&)
var panelsWithinmyCt = Ext.ComponentQuery.query('#myCt panel');
注:>表示直接,豆表示或操作
//表示id為myct的直接子項目中panel的組件
var directChildPanel = Ext.ComponentQuery.query('#myCt > panel');
//表示gridpanel與treepanel組件
var gridsAndTrees = Ext.ComponentQuery.query('gridpanel, treepanel');
3)根據屬性尋找
//表示如果組件有autoScroll屬性,那麼它就被先中了
var panelsWithinmyCt = Ext.ComponentQuery.query('component[autoScroll]');
var panelsWithinmyCt = Ext.ComponentQuery.query('panel[title="Test"]');
panel[title="Test"]
4)根據組件的一些運算式式的屬性,如果運算式的傳回值為true,那麼對應的組件就被先中
//如果組件的調用isDisabled()為true的話,那麼此組件就被選中
var disabledFields = myFormPanel.query("{isDisabled()}");
5)偽類別選取器(Pseudo classes)
預設包含的有not,last,
//表示在document中找最後的panel組件
var panelsArray = Ext.ComponentQuery.query('panel:last');
//自訂的
Ext.ComponentQuery.pseudos.invalid = function(items) {
var i = 0, l = items.length, c, result = [];
for (; i < l; i++) {
if (!(c = items[i]).isValid()) {
result.push(c);
}
}
return result;
};
var invalidFields = myFormPanel.query('field:invalid');
if (invalidFields.length) {
invalidFields[0].getEl().scrollIntoView(myFormPanel.body);
for (var i = 0, l = invalidFields.length; i < l; i++) {
invalidFields[i].getEl().frame("red");
}
}
2.尋找容器的時候
可以用Ext.container.Container.query().此方法其實是以container為根項目調用Ext.ComponentQuery.query
Ext.container.Container.down
Ext.container.Container.child
Ext.Component.up.