Ext JS 控件查询方法

Ext JS提供了单例类Ext.ComponentQuery 用于在页面中搜索组件,其语法和CSS选择器非常相似。主要是使用Ext.ComponentQuery.query() 这个方法来查询,其返回值是数组:Ext.Component[],看一个例子:

 Ext.onReady(function () {
         //容器C
     Ext.create('Ext.container.Container', {
         id: 'myContainer',
         renderTo: Ext.getBody(),
         padding: '5 5 5 5',
         layout: {
             type: 'vbox'
         },
         items: [{
         //编号1
                 xtype: 'textfield',
                 fieldLabel: 'First Name'
             }, {
         //编号2
                 xtype: 'textfield',
                 fieldLabel: 'Last Name'
             }, {
         //容器B
                 xtype: 'panel',
                 layout: 'vbox',
                 items: [{
          //编号3
                     xtype: 'datefield',
                     fieldLabel: 'Date of Birth'
                 }, {
          //容器A
                     xtype: 'container',
                     items: [{
          //编号4
                         xtype: 'textfield',
                         fieldLabel: 'email',
                         itemId: 'email'
                     }]
                 }]
             }
         ]
     });

     var dateFields = Ext.ComponentQuery.query('datefield');
     console.log(dateFields);//这是一个数组!
     console.log(dateFields[0].fieldLabel);//输出:Date of Birth

     var dateFieldsInPanels = Ext.ComponentQuery.query('panel > datefield');
     console.log(dateFieldsInPanels[0].fieldLabel);//输出:Date of Birth

     var emailInMyContainer = Ext.ComponentQuery.query('#myContainer #email');
     console.log(eemailInMyContainer[0].fieldLabel);//输出:email
 });

组件可以通过下表的方式检索:

查询类型例子(上面的案例)
xtypeExt.ComponentQuery.query(‘datefield’)
结果:编号3
itemId 或 idExt.ComponentQuery.query(‘#email’)(id前需要加上#符号)
结果:编号4
AttributesExt.ComponentQuery.query(‘textfield[fieldLabel=”Last Name”]’)
结果:编号2
descendantExt.ComponentQuery.query(‘#myContainer textfield’)
结果:编号1、2、3、4,因为datefield是textfield的子类,也算一个
Direct childExt.ComponentQuery.query(‘#myContainer > textfield’)
结果:编号1、2,因为编号3、4是孙辈,不算
ParentExt.ComponentQuery.query(‘#email ^ container’)
结果:容器A、B、C
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值