8

我有一个 DOM 元素elem,它有一个祖先元素,该元素具有该类myClass(或者具有某个名称的属性)。问题是我需要用 jQuery 轻松找到这个祖先。目前,我被难看的试错法困住了,比如

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

如果 HTML 代码发生变化,jQuery 代码很容易中断。

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

4

4 回答 4

14

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

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

文档

于 2012-05-02T11:10:56.520 回答
4

class提供解决方案,但不是唯一的解决方案attribute

我在这里找到了我的答案: jQuery 找到最接近的带有属性的父链接

于 2016-01-12T08:46:15.353 回答
3

jQuery添加的新方法,该parents功能允许您使用选择器检查所有父母。

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

于 2013-08-23T05:49:04.040 回答
1

尝试

var ancestor = $(elem).closest(selector what are you looking for);
于 2012-05-02T11:12:38.547 回答