2012-05-02 10 views
5

DOMエレメントelem祖先要素があり、クラスはmyClassです(名前には属性があります)。問題は、jQueryでこの先祖を簡単に見つける必要があることです。現在、私は、HTMLコードが変更された場合jQueryで特定の属性またはクラスを持つ祖先を見つける

var ancestor = $(elem).parent().parent().parent().parent().parent().parent().parent(); 

のような醜い試行錯誤のもので立ち往生しています、jQueryのコードが簡単に壊れます。

より優雅なjQueryコードで祖先要素を見つけることは可能ですか?

+0

重複を[?セレクタに一致する最初の祖先を選択する方法](http://stackoverflow.com/questions/2867022/how-to-select-first-祖先と一致するセレクター) –

+0

@TJ Crowder:申し訳ありません、私はそのポストを逃しました。 – Gruber

答えて

7

closest()を使用すると、指定したセレクタに一致する親要素が見つかるまで、現在の要素からDOMをトラバースします。

var ancestor = $(elem).closest(".myClass"); 

Docs

+0

ありがとう、私はそれをチェックアウトします。 – Gruber

1

のjQueryによって追加された新しい方法

var ancestor = $(elem).closest(selector what are you looking for); 
+0

ありがとう、私はその1つを逃していたかもしれない。 – Gruber

2

を試してみて、parents機能を使用すると、セレクタとすべての親のために確認することができます。

var ancestor = $(elem).parents(".myClass");

関連する問題