您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
Ready 发布于2014年08月19日 07:10

原创 jQuery 选择器(:nth-of-type(n))详解

4501 次浏览 读完需要≈ 7 分钟

内容目录

jQuery的:nth-of-type(n)选择器用于匹配作为父元素的同类型子元素中的第n个(或符合特定顺序的)元素,将其封装为jQuery对象并返回。

例如,li:nth-of-type(2)选择器的匹配条件是:该<li>元素必须是父元素的所有<li>类型的子元素中的第2个元素。

与该选择器相对的是:nth-last-of-type(n)选择器,用于匹配作为父元素的同类型子元素中的倒数第n个(或符合特定倒数顺序的)元素。

语法

jQuery1.9 新增该选择器。

// 这里的selector表示具体的选择器
// 这里的n表示具体的数字序号
jQuery( "selector:nth-of-type(n)" )

参数

参数 描述
selector 一个有效的选择器。
n 指定的数字序号,从1开始算起。

参数n一般是一个自然数,表示作为父元素下的第n个同类型的子元素。例如::nth-of-type(2)表示作为父元素的同类型子元素中的第2个。

参数n也可以为特定的表达式(表达式中只能使用字母n表示自然数,大小写均可)。例如:

  • :nth-child(odd)表示匹配作为父元素的同类型子元素中的奇数(第1、3、5、7……个)元素;
  • :nth-child(even)表示匹配作为父元素的同类型子元素中的偶数(第2、4、6、8……个)元素;
  • :nth-child(3n)表示匹配作为父元素的同类型子元素中的第3n个元素(n表示包括0在内的自然数,下同);
  • :nth-child(3n+1)表示匹配作为父元素的同类型子元素中的第3n+1个元素;
  • :nth-child(3n+2)表示匹配作为父元素的同类型子元素中的第3n+2个元素;

返回值

返回封装了匹配作为父元素的同类型子元素中的第n个(或符合特定顺序的)元素的jQuery对象。

如果找不到任何相应的匹配,则返回一个空的jQuery对象。

jQuery先会根据选择器selector去查找所有匹配的元素,再判断它们是否是自己父元素的所有此类型的子元素中的第n个元素(或符合特定顺序的元素),如果是就保留,否则就舍弃掉该元素。

示例&说明

以下面这段HTML代码为例:

<div id="n1">
	<div id="n2">
		<label id="n3">label1</label>
		<span id="n4">span1</span>
		<span id="n5" class="abc">span2</span>
		<span id="n6">span3</span>
	</div>
	<div id="n7" class="abc">
		<span id="n8" class="abc">span1</span>
		<span id="n9">span2</span>
	</div>
</div>

现在,我们查找作为父元素的span类型子元素中的第二个span标签,则可以编写如下jQuery代码:

// 选择了id分别为n5、n9的两个元素
// n5虽然不是n2的第2个子元素,但它是n2所有span类型子元素中的第2个,因此可以匹配
$("span:nth-of-type(2)");

接着,查找所有包含类名abc的元素,而且它们必须是父元素的该类型子元素中的"长子",则可以编写如下jQuery代码:

// 选择了id分别为n5、n7的两个元素
// .abc可以匹配id分别为n5、n7、n8的3个元素,n5是n2所有span类型子元素中的第2个,n7是n1所有div类型子元素中的第2个,但n8不是n7所有span类型子元素中的第2个,因此不能匹配n8。
$(".abc:nth-of-type(2)");

运行代码

  • CodePlayer技术交流群1
  • CodePlayer技术交流群2

0 条评论

撰写评论

打开导航菜单