2010-07-26 143 views
5

是否有一個jQuery父選擇器遍歷DOM直到找到第一個匹配項?jQuery父選擇器

如:

<tr> 
    <td> 
     <div id="foo">hello!</div> 
    </td> 
</tr> 

找到從DIV行我使用:

$('#foo').parent().parent();

這種感覺就像我應該能夠寫類似

$('#foo').firstParent('tr');

但我找不到y文檔中的這種功能。

回答

6

您可以使用.closest()此:

$('#foo').closest('tr'); 

如果有幫助,有一類專門爲此縮小你的未來搜索到:Tree Traversal

+0

感謝併爲樹遍歷鏈接歡呼。我永遠不會發現,似乎是一個非常糟糕的命名函數imho。 – fearofawhackplanet 2010-07-26 11:37:34

+0

@patrick - Woops,謝謝! – 2010-07-26 11:40:04

+0

@fearofawhackplanet - 當您搜索API時:http://api.jquery.com/找到一個你知道在同一區域的功能,在右邊它將鏈接到它所屬的類別,通常最快的路線:) – 2010-07-26 11:41:32

1
$(element).parents('TR:first'); 

編輯:或者有什麼尼克下面說 - 忘了那個吸盤。

+0

+1 - 這是'.closest('tr')'的長期等價物,所以肯定是一個有效的方法:) – 2010-07-26 11:37:18

0
$('#foo').parent('tr') 
+0

這不像大多數人所期望的那樣,它選擇父* if *這是一個'',如果它不是'',你會得到一個空集。選擇器是一個過濾器,而不是搜索術語,它相當於'.parent()。filter('tr')'那一步:) – 2010-07-26 11:34:29