2013-07-11 50 views

回答

1

不,Sizzle不支持名称空间选择器。

CSS selector for namespacesnamespace|。该选择器匹配任何名称空间(包括默认名称空间)中的跨度:*|span

该选择用jQuery工作在现代浏览器:jsfiddle.net/U7my4

现代浏览器都支持document.querySelectorAll()本身,所以jQuery使用,默认情况下。 Sizzle是用于旧版浏览器的后备选择器引擎。基本上,我们正在谈论IE7和IE6,而这些在中国以外几乎不再使用。通过在IE7模式下加载jsFiddle的frame page,您可以强制jQuery使用sizzle。而它失败的错误消息:

语法错误,无法识别的表达式:* |跨度

+0

只有默认命名空间或namespaceless工作虽然。 – BoltClock

+0

是的,我无法获得使用任何其他名称空间的示例。即使遵循[CSS3名称空间模块]的语法(http://www.w3.org/TR/css3-namespace/)。 *但是,*要点在于选择器本身*被现代浏览器支持。虽然它可能没有任何实际用途。 – gilly3

+1

这是因为@命名空间不是选择器。这是一个CSS规则。由于你实际上不能在'querySelectorAll()'中写CSS,所以完全不支持。 'querySelectorAll()'中的命名空间在这里覆盖:http://www.w3.org/TR/selectors-api/#resolving-namespaces – BoltClock

相关问题