0

jQuery的第n個孩子選擇器不工作,因爲我期望它可以與下面的HTML一起使用。它返回0而不是(總數SELECTs - 1)。它工作得很好,如果我擺脫了表,並只保留選擇。我注意到,如果我使用nth-child(n+1),它可以正常工作,無論我是否保留TABLE結構。將警報代碼移至按鈕單擊事件不會改變任何內容。jQuery的第n個孩子(n + 2)與表結構的問題

<table> 
    <tr> 
     <td> 
      <select> 
       <option value=""></option> 
       <option value=""></option> 
       <option value=""></option> 
      </select> 
     </td> 
     <td>    
      <select> 
       <option value=""></option> 
       <option value=""></option> 
       <option value=""></option> 
      </select> 
     </td> 
    </tr> 
</table> 

和jQuery代碼

$(document).ready(function() { 
    alert($("select:nth-child(n+2)").length); 
}); 

jsfiddle demo

jQuery 1.6.2; IE8(幫不了它!);我沒有使用表來創建頁面佈局。

回答

1

如果你想要的是每一個選擇的元素,但第一個就用select:gt(0)

原因:nth-child(n+2)不起作用是因爲選擇的元素不具有相同的父。 :第n孩子取決於統計同一父母的子女。

看看這個: http://jsfiddle.net/petersendidit/MvkUP/1/

+0

感謝大衛,這正是我所用,以解決這個問題。我問了這個問題,知道爲什麼n-child(n + 2)不起作用。 – Lobo

+0

@Lobo我更新了我的答案,以說明爲什麼':nth-​​child'不起作用 – PetersenDidIt

+0

謝謝先生。問題的答案總是正確的 - **孩子**!我更新了小提琴,我認爲[這一個](http://jsfiddle.net/MvkUP/2/)更好地解釋了它。 – Lobo