可以将CSS选择器传递给jQuery函数,例如:
jQuery('h1 + h2');
jQuery还具有一些过滤器,例如:even和:odd:
:even
:odd
jQuery('tr:even');
我一直在寻找某种语法规则来区分两者,并且我想也许jQuery过滤器总是使用:。
:
但是,某些CSS选择器也使用:。例如:
:last-child
:root
:empty
:target
有没有人知道您使用的是CSS选择器还是jQuery过滤器的任何智能提示?
我一直在寻找某种语法规则来区分两者,并且我想也许jQuery过滤器总是使用:。 但是,某些CSS选择器也使用:。 有没有人知道您使用的是CSS选择器还是jQuery过滤器的任何智能提示?
但是,某些CSS选择器也使用:。
这是关于选择器库在其自身的扩展中采用CSS语法的最烦人的事情之一:因为基于匹配的过滤器和真正的伪类都在称为“伪选择器”的总称中合并在一起(基本上意味着“选择器以:“)开头的,判断“伪选择器”是过滤器 还是 真正的简单选择器的唯一方法是知道它的作用,如果您不熟悉选择器,这通常意味着参考jQuery文档。正如其他人在这里提到的。您会注意到,大多数这些基于匹配的过滤器的描述中都会有“ match”一词。这是“伪选择器”充当基于匹配项的过滤器的合理指示。
jQuery中有一个选择器子类别,称为“基本过滤器”,但是名称完全令人误解,选择器本身分类不佳。并非所有过滤器都是实际的过滤器,但其中一些过滤器的功能类似于标准伪类!至少jQuery扩展类别具有适当的名称-因为这些选择器是非标准的。
我所说的“基于匹配的过滤器”基本上是一个选择器,它根据 导致该选择器的整个复杂选择 器来匹配元素。听起来令人困惑?那是因为。
实际上,为了便于参考,以下是用作基于匹配的过滤器的jQuery选择器的列表:
:eq()
:gt()
:lt()
:first
:last
这些选择器返回一组匹配项中的第n个元素,这与其他标准选择器不同,其他标准选择器采用每个元素并仅基于由DOM或其他方式提供的有关元素的信息来推断元素的含义,以及不基于选择器字符串的其余部分。虽然它们经常比较:first- child,:last-child,:nth-child()和:nth-last-child(),他们是在功能方面完全不同。在选择使用哪个选择器时要非常小心。
:first- child
:nth-child()
:nth-last-child()
例如,下面的选择器,使用jQuery的:first:
$('ul > li:first')
仅匹配 一个 元素:第一个元素匹配选择ul > li的无论多少,ul和li元件有在DOM。可以将这种选择器符号编写为方法调用,如下所示:
ul > li
ul
li
$('ul > li').first()
这使实际操作更加清晰。它不同于:first-child:
:first-child
$('ul > li:first-child')
这样,:first-child将选择每个元素作为li其父元素的第一个孩子ul,并因此有可能返回一个 或多个 li元素,与之恰好相反:first。
还值得一提的是:not()选择器。尽管我不认为它是与上述选择器同类型的过滤器,但重要的是要记住,jQuery是从CSS实际提供的功能中扩展出来的。这个问题将详细说明差异。我想它仍然归因于“基本过滤器”.not(),这是因为,它绝对是所有过滤器方法的目的和目的,与的对立面.filter()。
:not()
.not()
.filter()