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