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他人在这里提到的文件。 您会注意到,大多数基于匹配的过滤器在其描述中都会有“匹配”一词; 这是一个合理的指标,即“伪选择器”用作基于匹配的过滤器。
在jQuery中有一个名为Basic Filters的选择器子类,但名称完全是误导性的,而选择器本身分类很差; 不是所有的都是实际的过滤器,但其中一些功能像标准伪类一样! 至少jQuery扩展类别有一个正确的名称 - 因为这些选择器是非标准的。
我称之为“基于匹配的过滤器”基本上是一个选择器,它匹配基于整个复杂选择器通向该选择器的元素。 声音混乱? 那是因为它。
实际上,为了便于参考,下面是一个用作基于匹配过滤器的jQuery选择器列表:
:eq()
:gt()
:lt()
:even
:odd
:first
:last
这些选择器在一组匹配中返回第n个元素,而不是其他标准选择器,这些标准选择器只取决于由DOM提供的元素信息或其他方面的信息,不基于选择器字符串的其余部分。 虽然他们经常被比作:first-child
, :last-child
, :nth-child()
和:nth-last-child()
,但它们在功能方面差别很大。 在选择使用哪个选择器时要非常小心。
例如,下面的选择器,使用jQuery's :first
:
$('ul > li:first')
无论在DOM中有多少个ul
和li
元素,只匹配一个元素:匹配选择器ul > li
的第一个元素。 这个选择符符号可以写成方法调用,如下所示:
$('ul > li').first()
这使得它实际上做得更清楚。 它不同于:first-child
:
$('ul > li:first-child')
在:first-child
会选择每li
是其父的第一个孩子ul
,因此有可能返回一个或多个li
元素,而不是只有一个具有:first
。
另外值得一提的是:not()
选择器; 尽管我不认为它与上面的选择器是同一种过滤器,但重要的是要记住,jQuery将它从CSS中实际提供的内容扩展而来。 在这个问题上详细的差异。 无论如何,我认为它归入基本过滤器,因为.not()
,它绝对是所有意图和目的的一种过滤方法,与.filter()
相反。
jQuery选择器实用程序功能的想法是接受任何css选择器(包括css3选择器),并且除了添加一些未在css规范中定义的额外(其示例是:odd(在有效css中为:第n个孩子(奇数))和:不是(选择器))。 强烈建议不要使用jQuery特定的选择器,除非真的有必要,因为本地css选择器可以比自定义jQuery css更快地处理(在现代webbrowsers中)。 正如gdoron已经提到的,如果你需要检查一个特定的选择器是否可用,你可以在jquery文档中看到完整的列表,你也可以在那里找到自定义选择器。
是的,该选择器存在于jQuery中
选择器被称为下一个相邻选择器
你可以在这里看到完整的选择器列表
有没有人有任何智能提示知道它是一个CSS选择器还是使用JQuery过滤器?
我的提示,检查API,如果选择器存在或不...
链接地址: http://www.djcxy.com/p/22867.html上一篇: Difference between CSS selector and jQuery filter?
下一篇: child not working