在jQuery中查找具有特定属性或类的祖先

时间:2012-05-02 11:09:53

标签: jquery jquery-selectors

我有一个DOM元素elem,它有一个 ancestor 元素,它有一个类myClass(或者一个带有某个名字的属性)。问题是我需要使用jQuery轻松找到这个祖先。目前,我遇到了像

这样丑陋的试错之类的东西
var ancestor = $(elem).parent().parent().parent().parent().parent().parent().parent();

如果HTML代码发生变化,jQuery代码很容易破解。

是否可以使用更优雅的jQuery代码找到祖先元素?

4 个答案:

答案 0 :(得分:12)

使用closest(),它将从当前元素遍历DOM,直到找到与您提供的选择器匹配的父元素。

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

Docs

答案 1 :(得分:3)

jQuery添加的新方法,parents函数允许您检查所有父母的选择器。

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

答案 2 :(得分:2)

仅显示class解决方案,但未提供attribute解决方案。

我在这里找到了答案: jQuery find closest parent link with attribute

答案 3 :(得分:1)

尝试

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