有没有理由在'.class'上使用选择器'*.class'?

yur*_*y-n 3 jquery jquery-selectors

我在代码中找到了它,并且不知道使用*.class选择器选择器有什么意义.class.

Bol*_*ock 11

无论是在jQuery(Sizzle)选择器上下文还是CSS选择器上下文中,都没有意义.双方*.class.class在匹配的元素,和特异性方面等同.

*字符仅在用于引用任何元素时才有意义; 它暗示了你在没有类型选择器的情况下使用任何其他简单选择器的那一刻.即便如此,如果有的,你很少会发现自己需要将事件挂钩或操纵DOM上每个元素的属性.

如果您要使用类,伪类,ID等,那么通用选择器就没有意义,因为无论如何都会相应地过滤所选元素.

此外,这是*jQuery文档引用的其他选择器一起使用的一个缺点:

注意:全部或通用选择器非常慢,除非单独使用.

以下是Selectors规范所说的内容:

如果由*表示的通用选择器(即没有名称空间前缀)不是简单选择序列序列的唯一组件,或者后面紧跟伪元素,则可以省略*并隐含通用选择器的存在.

例子:

  • *[hreflang|=en][hreflang|=en]是等价的,
  • *.warning.warning是等价的,
  • *#myid并且#myid是等价的.