2012-05-02 49 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");