nth-child 選擇器
說明:選取所有為其父項的第 n 個子項的元素。
-
新增版本:1.1.4jQuery( ":nth-child(index/even/odd/equation)" )
index:要比對的每個子項的索引,從
1
開始,字串even
或odd
,或一個方程式(例如:nth-child(even)
、:nth-child(4n)
)
由於 jQuery 實作 :nth-
選擇器完全源自於 CSS 規格,n
的值為「1 為基準」,表示從 1 開始計算。jQuery 方法(例如 .first()
或 .eq()
)遵循 JavaScript 的「0 為基準」計算。假設有一個包含兩個 <li>
的 <ul>
,$( "li:nth-child(1)" )
會選取第一個 <li>
,而 $( "li" ).eq( 1 )
會選取第二個。
:nth-child(n)
偽類別很容易與 .eq( n )
呼叫混淆,即使兩者可能導致截然不同的匹配元素。使用 :nth-child(n)
時,會計算所有子元素,無論它們是什麼,並且僅當指定元素符合附加到偽類別的選取器時才會選取該元素。使用 .eq( n )
呼叫時,僅計算附加到偽類別的選取器,而不限於任何其他元素的子元素,並且選取第 (n+1) 個元素(n 從 0 開始)。
可以在 W3C CSS 規範 中找到對這種不尋常用法進一步的討論。
範例
在每個匹配的 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
84
85
86
87
88
|
|