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



我有一个 DOM 元素elem,它有一个具有类myClass祖先元素(或者是一个具有某种名称的属性(。问题是我需要用jQuery轻松找到这个祖先。目前,我被丑陋的试错法所困扰,例如

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

如果 HTML 代码更改,jQuery 代码很容易中断。

是否有可能找到具有更优雅的jQuery代码的祖先元素?

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

var ancestorByClass = $(elem).closest(".myClass"); // by class
var ancestorByAttribute = $(elem).closest('[href="#foo"]'); // by attribute

只提出了class解决方案,但没有提出attribute解决方案。

我在这里找到了答案:jQuery 使用属性查找最近的父链接

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

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

尝试

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

最新更新