在 ExtJS 5 中无法在 'Element' 上执行 'querySelectorAll'

Failed to execute 'querySelectorAll' on 'Element' in ExtJS 5

我正在尝试使用 Ext.dom.Query.Select 方法查找具有 class 名称方块且 highlightedReactangle.Same 方法与 extjs 4 一起使用的所有 divs,但是在升级到 extjs 5 之后它开始抛出错误。

Uncaught SyntaxError: Failed to execute 'querySelectorAll' on 'Element': 'div:any(div.square|div.highlightedReactangle|div.highlightedReactangleIE|div.pin|div.redCircleCount|div.stampPreviewCls)' is not a valid selector.

我用来查找相关 div 的语句是,

this.el.select("div:any(div.square|div.highlightedReactangle|div.highlightedReactangleIE|div.pin|div.redCircleCount|div.stampPreviewCls)", true);

我到底错过了什么?

what exactely I'm missing ?

从版本 5 开始,当在 Element (versus explicitly using Ext.dom.Query.select), Ext JS uses the native querySelectorAll method which requires valid CSS selectors. As the error message suggests, your selector is not a valid one 上调用 select 时。

在版本 4 中,Ext JS 使用 Ext.dom.Query.select 来处理对 Elementselect 调用。该方法 "liberal" 多于 querySelectorAll。它也适用于版本 5,因此您只需使用:

Ext.dom.Query.select(your_selector, this.el.dom)