CSSselect器和jQueryfilter之间的区别?

可以将CSSselect器传递给jQuery函数,例如:

jQuery('h1 + h2'); 

jQuery也有一些filter,如:even:odd

 jQuery('tr:even'); 

我正在寻找某种语法规则来区分这两者,我在想,也许jQueryfilter总是使用:

但是,一些CSSselect器也使用a :。 例如:

  • :last-child
  • :root
  • :empty
  • :target

有没有人有任何智能提示知道,如果它是一个CSSselect器或正在使用的jQueryfilter?

我正在寻找某种语法规则来区分这两者,我在想,也许jQueryfilter总是使用:

但是,一些CSSselect器也使用a:。

有没有人有任何智能提示知道,如果它是一个CSSselect器或正在使用的jQueryfilter?

这是关于在其扩展中采用CSS语法的select器库最恼人的事情之一:因为基于匹配的filter和真正的伪类被笼统地称为“伪select器”(其基本意思是“select器以“ : ”开头,唯一可以判断一个“伪select器”是一个filter还是一个真正简单的select器的方法就是知道它是干什么的,如果你对select器不熟悉,通常意味着引用jQuery他人在这里提到的文件 。 您会注意到,大多数这些基于匹配的filter将在其描述中的某个位置具有“匹配”一词; 这是一个合理的指标,即“伪select器”作为基于匹配的filter。

在jQuery中有一个名为Basic Filters的select器子类,但名称完全是误导性的,而select器本身分类很差; 不是所有的都是实际的filter,但其中一些function像标准的伪类! 至lessjQuery扩展类别有一个正确的名称 – 因为这些select器是非标准的。

我称之为“基于匹配的filter”基本上是一个select器,它匹配一个基于整个复杂select器的元素, 并引导到该select器 。 声音混乱? 那是因为它。

实际上,为了便于参考,下面是一个用作基于匹配filter的jQueryselect器列表:

  • :eq()
  • :gt()
  • :lt()
  • :even
  • :odd
  • :first
  • :last

这些select器在一组匹配中返回第n个元素,而不是其他的标准select器,这些select器只取决于由DOM提供的有关元素的信息或者以其他方式提供的元素的信息,不基于select器string的其余部分。 虽然他们经常被比作:first-child:last-child:nth-child():nth-last-child() ,他们在function上有很大的不同。 在select使用哪个select器时要非常小心。

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

 $('ul > li:first') 

只匹配一个元素:匹配select器ul > li的第一个元素,而不pipeDOM中有多less个ulli元素。 这个select符符号可以写成如下所示的方法调用:

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

这使得它实际上做得更清楚。 它不同于:first-child

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

在那里:first-child将select每个li是其父母的第一个孩子,因此可能会返回一个或多个 li元素,而不是一个:first

另外值得一提的是:not()select器; 尽pipe我不认为它和上面的select器是同一种filter,但重要的是要记住,jQuery将它从CSS中实际提供的内容中进行了扩展。 在这个问题上详细的差异。 我想它是归类于基本filter,因为.not() ,这是绝对的所有意图和目的过滤方法,和.filter()的对立面。

jQueryselect器实用程序function的思想是接受任何cssselect器(包括css3select器),除此之外还添加了一些未在css规范中定义的额外值(例如:odd(在有效的css中是:第n个孩子(奇数))和:不是(select器))。 强烈build议不要使用jQuery特定的select器,除非真的有必要,因为本地cssselect器可以比自定义jQuery css更快地处理(在现代webbrowsers中)。 正如gdoron已经提到的,如果你需要检查一个特定的select器是否可用,你可以在jquery文档中看到完整的列表,你也可以在那里find自定义的select器。

是的,该select器存在于jQuery中
select器被称为下一个相邻的select器

你可以在这里看到完整的select器列表

有没有人有任何智能提示,知道它是一个CSSselect器或正在使用的JQueryfilter?

我的提示,检查API,如果select器存在或不…