如何按组件名称查询包含字符串某些部分的组件

Raf*_*iel 3 extjs extjs4

我想用来Ext.ComponentQuery.query()查询包含一些名称路径的按钮名称.

假设我有4个按钮,名称声明为'edit_btn','add_btn','add2_btn'和'edit2_btn'

然后我使用查询. Ext.ComponentQuery.query("button[name='*edit*']");

我应该得到''edit_btn' '和''edit2_btn' '按钮.

Ext.ComponentQuery.query("button[name='*add*']");

我应该得到''add_btn' '和'add2_btn'按钮.

或者我可以在Ext.ComponentQuery.query()命令中使用正则表达式?

如果可以,如何使用它?

Krz*_*tof 10

它没有实现.我查看了源代码,并且只实现了相等运算符.Hovewer很容易扩展它(参见filterByAttributeComponentQuery.html文件),但你必须从源代码复制所有代码,因为它是作为单例实现的.

另一种方法是选择具有name属性并稍后过滤的按钮,例如:

Ext.Array.filter(
    Ext.ComponentQuery.query('button[name]'), 
    function(c){ return /^add/.test(c.name); }
)
Run Code Online (Sandbox Code Playgroud)