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