Javascript 使用ExtJS选择不包含特定ID的元素

Javascript 使用ExtJS选择不包含特定ID的元素,javascript,extjs,css,Javascript,Extjs,Css,我正在尝试选择表单的所有元素,但ID中包含单词foo或bar的元素除外。如何使用ExtJS2.3.0实现这一点?我尝试了以下方法: Ext.query("select,input:not([id*=foo][id*=bar])", "SomeForm");` 。。。但它不起作用。排除带有foo的ID似乎效果不错: Ext.query("select,input:not([id*=foo])", "SomeForm")` 我只是不知道如何添加第二个ID子字符串。有什么想法吗?Ext.query

我正在尝试选择表单的所有
元素,但ID中包含单词
foo
bar
的元素除外。如何使用ExtJS2.3.0实现这一点?我尝试了以下方法:

Ext.query("select,input:not([id*=foo][id*=bar])", "SomeForm");`
。。。但它不起作用。排除带有
foo
的ID似乎效果不错:

Ext.query("select,input:not([id*=foo])", "SomeForm")`

我只是不知道如何添加第二个ID子字符串。有什么想法吗?

Ext.query(“select,input:not([id*=foo]):not([id*=bar]),“SomeForm”)`试试这个

不知道如何组合这样的选择器,但我认为如果使用过滤功能,可以过滤掉第一个查询:

Ext.query("select,input:not([id*=foo]):not([id*=bar])", "SomeForm")
Ext.DomQuery.filter(Ext.query('input:not([id*=foo])','SomeForm'),'input:not([id*=bar])');
请注意,我只是对这个和那个函数进行了更多的操作:

Ext.query('input:not([id*=foo]):not([id*=bar])');
但这给了我和你提到的一样的错误:

Ext.query('input:not([id*=foo]):not([id*=bar])','SomeForm');

因此,在我看来,当你用多个属性选择器传递一个特定的根时,ExtJS查询函数似乎有一个bug。

这在FF 3.6.3中给了我以下错误:
错误解析选择器,解析失败在“):not([id*=bar]”
。也许ExtJS不喜欢链接伪选择器?我注意到一个开头“select and no closing”请看看这是否有助于查看我对你原始帖子的评论sushil@pmdarrow-这是一个非常有效的CSS3选择器。也许你是对的,也许ExtJS不喜欢链接伪选择器。答案与Ben相同-请看我对他的评论。我在第一次尝试之前就解决了这个拼写错误。它没有解决任何问题。这是我要说的正确的一行sing:
Ext.query(“输入:不([id*=foo]):不([id*=bar]),“SomeForm”);
这是有效的。如果我想排除包含
baz
的id,除了
foo
bar
之外?另外,我似乎在不使用
Ext.query(“输入:不允许”)传递特定根时也会遇到同样的错误(
错误解析选择器
)([id*=foo]:不是([id*=bar]))
请记住,我仅限于Ext 2.3.0。对不起,我实际上读了3.2…如果您遇到同样的错误,我会认为这是2.3版本中的一个错误,或者可能只是不受支持。您应该能够调用
Ext.DomQuery.filter
,对上一次
Ext.DomQuery.filter
调用的结果进行过滤,等等。如果您有很多我建议您创建自己的函数,接收要排除的ID数组,首先执行
查询
调用,然后根据需要循环通过要排除的ID数组,并调用
过滤器
。除非有人知道更好的使用ExtJS的方法,否则我会这么做。我只是像您所说的那样完成了一个循环,但是答案也有效,所以我会将其标记为已接受。