jQuery中的:nth()伪类选择器是什么?
jQuery中的:nth()伪类选择器是什么?,jquery,jquery-selectors,Jquery,Jquery Selectors,:n伪类的定义是什么 我找不到任何jQuery或CSS文档,但它似乎存在: var $list = $('<ul><li>1</li><li>2</li><li>3</li></ul>'); $list.find('li:nth(2)').text(); 两者都返回“2” 这个伪类是什么?有人能给我指一些关于它的文档吗?什么是:nth()选择器? 与其他答案相反,:nth()不是CSS伪类选择器
:n
伪类的定义是什么
我找不到任何jQuery或CSS文档,但它似乎存在:
var $list = $('<ul><li>1</li><li>2</li><li>3</li></ul>');
$list.find('li:nth(2)').text();
两者都返回“2”
这个伪类是什么?有人能给我指一些关于它的文档吗?什么是:nth()选择器?
与其他答案相反,:nth()
不是CSS伪类选择器
这是一个鲜为人知的位置选择器,用于:
:nth:
查找页面上的nth
元素
你会发现上面的定义
为什么选择不同的元素:nth-child()/:nth-of-type()?
nth()
和其他选择器选择不同元素的原因是nth()
是一个零基索引选择器,而CSS选择器是一基索引选择器
这是可以理解的,因为大多数人认为nth()
会与类似命名的CSS伪类选择器保持某种一致性,例如nth-child()
和nth-of-type()
——但是,正如前面提到的,它们实际上并不相关
那么,:nth()的功能实际上更接近:eq()?
对。事实上,似乎:
(2007)暗示John Resig计划删除:nth()
选择器,原因如下:
“我已经搜索了各个小组,但似乎找不到任何相关的谈话
如果有的话,使用:eq(n)
和
:n(n)
?我想在开始标准化一个或多个
其他。谢谢。”-Matt Penner
“它们是一样的,所以你可以随意使用。从jquery.js:nth:“m[3]-0==i”
eq:“m[3]-0==i”
“-Karl Swedberg
“嗯……我可能应该用核弹:nth()
”-约翰·雷斯格
但是,正如您所注意到的,删除:nth()
选择器从未实现(无论如何,从2013年开始)
用法示例:
HTML:
<p>1</p>
<p>2</p>
<p>3</p>
<p>4</p>
$('p:nth(2)').text(); // Returns 3 as zero-based index.
$('p:eq(2)').text(); // Returns 3 as zero-based index.
$('p:nth-child(2)').text(); // Returns 2 as one-based index.
$('p:nth-of-type(2)').text(); // Returns 2 as one-based index.
@Zenith,谢谢您的详细解释。我想这是某种非标准选择器。我就是找不到它的来源。@user2369736,请停止编辑这个问题。你建议的编辑正在改变我问题的背景。另外,
.text()
返回一个字符串,而不是一个数字,正如您在编辑时所暗示的那样。
<p>1</p>
<p>2</p>
<p>3</p>
<p>4</p>
$('p:nth(2)').text(); // Returns 3 as zero-based index.
$('p:eq(2)').text(); // Returns 3 as zero-based index.
$('p:nth-child(2)').text(); // Returns 2 as one-based index.
$('p:nth-of-type(2)').text(); // Returns 2 as one-based index.