nth-child selector
描述: 选择的他们所有父元素的第n个子元素。
- 
添加的版本: 1.1.4jQuery( ":nth-child(index/even/odd/equation)" )
index: 每个相匹配子元素的索引值,从
1开始,也可以是字符串even或odd,或一个方程式( 例如:nth-child(even),:nth-child(4n))。 
因为jQuery的实现:nth-child(n)是严格来自CSS规范,所以n值是“1索引”,也就是说,从1开始计数。对于所有其他选择器表达式,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.
注:
看下面一个例子:<div class="test">
<p>A元素</p>
<p>B元素</p>
<div>C元素</div>
<p>D元素</p>
</div>
看下面的代码
$("p:nth-child(2)")//B元素被选中
p:nth-child(2)选择器选择B元素,p:nth-child(2)选择器要满足的条件是:- 1、是一个段落p元素;
 - 2.是父元素的第二个子元素
 
<div class="test">的第二个子元素是p元素,所以满足条件,B元素就被中了。
jQuery 1.9新增了:nth-of-type()选择器,和这个:nth-child()比较容易混淆,具体查看:nth-of-type()中的比较说明
例子:
Example: 查找每个匹配的 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 
          
         | 
        
          
  | 
      
Demo:
Example: 这个例子展示了刚才提到的两个容易混淆的选择器是如何工作的。注意这里的 :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 
          
         | 
        
          
  |