Sencha Touch組件選擇器
get方法:
- get( String id : Object
通過id獲取一個組件實例。
參數(shù)
- l id : String
組件的id
返回值
- l Object
組件實例,或者unfined。
但是上述方法,只能實現(xiàn)獲取一個組件的目的,如果你想要獲取一個類型的所有組件集合、具有某些特點(diǎn)的組件集合,Ext.ComponentManager.get()就無能為力了。Sencha Touch中怎么做到這一點(diǎn)?這就是本篇存在的目的了。來,用組件選擇器吧,它的query方法能讓你輕松地實現(xiàn)這一目標(biāo)。下面讓我們來認(rèn)識一下它:
- query( String selector, Ext.Container root : Ext.Component[]
獲取一個組件集合。
參數(shù)
- l selector : String
一個字符串形式的選擇器。
- l root : Ext.Container(可選)
一個容器組件或一個容器組件集,搜索范圍將被限定在這些容器里面。
返回值
- l Ext.Component[]
符合條件的組件集,或者一個空集合。
各種類型的選擇器
如果你學(xué)過css的選擇器,那么肯定會對以下內(nèi)容十分熟悉。
ID選擇器
根據(jù)組件id來選擇組件,具有***性。前面以”#”號來標(biāo)志:
- //返回itemid或者id為“panel”的組件實例
- var panel = Ext.ComponentQuery.query('#panel');
類別選擇器
類選擇器根據(jù)類的xtype來選擇,可選擇前面是否以”.”來標(biāo)志,如:
- //根據(jù)xtype返回所有Ext.List實例
- var lists = Ext.ComponentQuery.query('list');
- var lists2 = Ext.ComponentQuery.query('.list');
屬性選擇器
根據(jù)組件的屬性來選擇,可以選擇具有某個屬性的組件,或者屬性為特定值的組件。
- //返回具有iconCls屬性的Ext.Button的實例
- var btnOk= Ext.ComponentQuery.query('button[iconCls]');
也可以選擇某個屬性為特定值的組件
- //返回text屬性為“ok”的Ext.Button的實例
- var btnOk= Ext.ComponentQuery.query('button[text = "ok"]');
后代選擇器
后代選擇器也稱為包含選擇器,用來選擇特定容器或容器組的后代,后代選擇器由兩個常用選擇器,中間加一個空格表示。其中前面的選擇器選擇父組件,后面的選擇器選擇后代組件。
- //返回所有id為“myCt”的容器中Ext.Panel實例
- var panelsWithinmyCt = Ext.ComponentQuery.query('#myCt panel');
子選擇器
請注意這個選擇器與后代選擇器的區(qū)別,子選擇器(child selector)僅是指它的直接后代,而后代選擇器是作用于所有子后代組件。后代選擇器通過空格來進(jìn)行選擇,而子選擇器是通過“>”進(jìn)行選擇,我們看下面的代碼:
- //返回所有id為“myCt”的容器的子組件中的Ext.Panel實例
- var directChildPanel = Ext.ComponentQuery.query('#myCt > panel'