2012-05-02 98 views
5

我有一個DOM元素elem,它有一個祖先元素,它具有類myClass(或者是某個名稱的屬性)。問題是我需要用jQuery輕鬆找到這個祖先。目前,我堅持醜陋的嘗試和錯誤的東西像在jQuery中查找具有特定屬性或類的祖先

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

如果HTML代碼修改,jQuery代碼容易斷裂。

是否有可能找到更優雅的jQuery代碼的祖先元素?

+0

重複的(http://stackoverflow.com/questions/2867022/how-to-select-first-祖先那匹配一個選擇器) –

+0

@TJ克羅德:對不起,我錯過了那個帖子。 – Gruber

回答

7

使用closest(),它將從當前元素向上遍歷DOM,直到找到與您提供的選擇器相匹配的父元素。

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

Docs

+0

謝謝,我會檢查出來。 – Gruber

1

嘗試

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

謝謝,不知道我怎麼可能錯過那一個。 – Gruber

2

的jQuery添加的新方法,該parents功能可以檢查所有的家長選擇。

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