gpt4 book ai didi

jquery - CSS 选择器和 jQuery 过滤器的区别?

转载 作者:技术小花猫 更新时间:2023-10-29 11:20:18 26 4
gpt4 key购买 nike

可以将 CSS 选择器传递给 jQuery 函数,例如:

jQuery('h1 + h2');

jQuery 也有一些过滤器,例如 :even:odd:

jQuery('tr:even');

我一直在寻找某种区分两者的语法规则,我在想也许 jQuery 过滤器总是使用 :

然而,一些CSS selectors也可以使用 :。例如:

  • :last-child
  • :root
  • :空
  • :目标

有没有人知道使用的是 CSS 选择器还是 jQuery 过滤器?

最佳答案

I was looking for some sort of syntax rule which differentiates the two and I was thinking that maybe the jQuery filters always use a :.

However, some CSS selectors also use a :.

Does anyone have any smart tips for knowing if it is a CSS selector or a jQuery filter being used?

这是选择器库在其自己的扩展中采用 CSS 语法的最烦人的事情之一:因为基于匹配的过滤器和真正的伪类都集中在一个称为“伪选择器”的总称中(基本上表示“以 :”开头的选择器),判断“伪选择器”是过滤器还是的唯一方法是了解它是什么确实如此,如果您不熟悉选择器,通常意味着引用 jQuery documentation正如其他人在这里提到的。您会注意到,大多数这些基于匹配的过滤器在其描述中的某处都会有“匹配”一词;这是“伪选择器”用作基于匹配的过滤器的合理指示。

在 jQuery 中有一个选择器的子类别,叫做 Basic Filters ,但是这个名字完全具有误导性,而且选择器本身的分类也很差;并非所有这些都是真正的过滤器,但其中一些功能类似于标准伪类!至少 jQuery Extensions类别有一个专有名称——因为这些选择器是非标准的。

我所说的“基于匹配的过滤器”基本上是一个选择器,它根据通向该选择器的整个复杂选择器 来匹配元素。听起来很困惑?那是因为它是。

事实上,为了便于引用,这里列出了用作基于匹配的过滤器的 jQuery 选择器:

这些选择器返回一组匹配项中的第 n 个元素,这与其他标准选择器不同,标准选择器获取每个元素并仅根据 DOM 提供的有关元素的信息来推断它是什么,或者否则,并且不基于选择器字符串的其余部分。虽然它们经常与 :first-child:last-child:nth-child():nth 进行比较-last-child(),它们在功能方面有很大的不同。在选择要使用的选择器时要非常小心。

例如,下面的选择器,使用jQuery的:first:

$('ul > li:first')

只匹配一个元素:匹配选择器ul>li的第一个元素,不管有多少个ulli 元素存在于 DOM 中。这个选择器符号可以写成这样的方法调用:

$('ul > li').first()

这使得它的实际作用更加清晰。它不同于 :first-child:

$('ul > li:first-child')

其中 :first-child 将选择作为其父级 ul 的第一个子级的每个 li,因此可能返回一个或更多 li 元素,而不是仅包含 :first 的元素。

另外值得一提的是 :not() 选择器;虽然我不认为它与上述选择器是同一种过滤器,但重要的是要记住 jQuery 是从 CSS 中实际提供的内容中扩展而来的。 this question 中详细说明了差异.我想它无论如何都归类在基本过滤器下,因为 .not() ,就其所有意图和目的而言,这绝对是一种过滤方法,并且是 .filter() 的对立面。 .

关于jquery - CSS 选择器和 jQuery 过滤器的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9983297/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com