2010-03-30 26 views
1

有沒有人知道這個jQuery選擇器會做什麼?用於查找方法的奇數jQuery選擇器

object.find('td:eq(1) div div'); 

我知道TD:EQ(1)將獲得第二個TD元素中的對象,但究竟會在選擇結束引用的2點div的呢?

回答

1

這第一部分找到第二<td>整體的對象,而不是每行(對於要:nth-child)。 div div部分在選擇器內部發現2個深度的div。

這裏是將2層div的在 選擇結束做參考的object.find('td:eq(1) div div');

<tr> 
<td><td> 
<td> 
    <div> 
    <span> <!-- Or any wrappers, etc --> 
     <div>Found me!</div> 
    </span> 
    </div> 
</td> 
</tr> 
10

它發現在一排(我認爲這是從0開始)第二個表格單元格,然後將該單元格內一個div內一個div。

所以像:

<tr> 
    <td> 
    Not me 
    </td> 
    <td> 
    <div class='parent'> 
     <div class='child'> 
     This stuff here! 
     </div> 
    </div> 
    </td> 
+1

+1,它是從零開始的。 – 2010-03-30 13:35:15

+0

不要忘記,'div'不需要直接在父'div'下,並且它會匹配每個具有另一個'div'的父節點的div和第二個表格單元格。 http://api.jquery.com/descendant-selector/和http://api.jquery.com/child-selector/之間的區別首先讓我感到不解。 – Mark 2010-03-30 13:39:46

+0

的確,這是真的;我還沒有喝咖啡,所以只有這麼多的打字我願意做:-) – Pointy 2010-03-30 14:08:39

0

匹配的例子嗎?

找到div內的div。 (相同的CSS選擇器)

2

作爲一個側面說明,你應儘量避免不規範的jQuery選擇。

如果您只使用標準的CSS選擇器,jQuery的可以通過選擇工作過的快速內置的現代瀏覽器querySelectorAll功能,但是當你使用:eq它要經過相對緩慢的原生的JavaScript灒選擇庫。

所以,你可能更喜歡拼寫:

object.find('td').eq(1).find('div div');