我有一个 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);