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

时间:2012-03-08 09:19:42

标签: 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()命令中使用正则表达式?

如果可以,如何使用它?

1 个答案:

答案 0 :(得分:10)

没有实施。我查看了源代码,并且只实现了相等运算符。 Hovewer很容易扩展它(请参阅ComponentQuery.html文件中的filterByAttribute),但您必须从源代码复制所有代码,因为它实现为单例。

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

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