nth-child selector
描述:选择所有的属于它们的父元素的第n个子元素的元素。
-
增补版本:1.1.4jQuery( ":nth-child(index/even/odd/equation)" )
index: 每个要匹配的子元素的索引,从
1
开始,或者是字符串even
或odd
,或者是一个方程式(例如,:nth-child(even)
、:nth-child(4n)
)
因为:nth-
选择器的jQuery实现器严格派生自CSS规范文档,所以n
的值是从1开始的索引,意味着计数从1开始。对于其它选择器表达式,譬如:eq()
或:even
,jQuery遵守JavaScript的从0开始的索引计数。给定一个<ul>
,它包含了两个<li>
,$( "li:nth-child(1)" )
选中第一个<li>
,而$( "li:eq(1)" )
选中第二个。
:nth-child(n)
伪类容易与:eq(n)
混同,然而这两者可以产生迵然乎异的匹配元素。利用:nth-child(n)
,所有子元素都被计数,无论它们是什么,指定的元素只在它匹配附加到伪类的选择器时,才会被选中。利用:eq(n)
,只有附加到伪类的选择器会被计数,不限于任何其它元素的子元素,而且选中了第n+1个元素(n是以0为基数的)。
W3C CSS specification中可以找到关于这种不常用的用法的进一步讨论。
示例:
在每个匹配的<ul>中找到第二个<li>并标记它。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
|
演示:
这是一个查看使用不同字符串的选择器如何起作用的游乐场。请注意,它不同于:even
和:odd
,后者无关乎父元素,仅仅是每隔一个筛选列表元素。然而,:nth-child
,只针对它的特定父元素计数子元素的索引。在任何情况下,演示比解释起来容易……
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
|