使用jQuery查找合适的父元素

16

给定一个 DOM 元素,我如何找到其最近的带有特定 CSS 类的父元素?

$(".editButton").click(function() {
   (magic container selector goes here).addClass("editing");
});

我不想使用大量的$(...).parent().parent(),因为我不想受限于特定的DOM结构。

4个回答

31

这应该可以工作

$(this).parents('.classYouWant:first').addClass("editing");

1
我想,所有的jQuery函数实际上都返回一个列表,我的想法不是错的吧?如果是这样,你可能想要尝试一下$(this).parents('.classYouWant:first')(试试看!) - Jennifer
@Jennifer:你说得对,如果该元素有多个父级,则会将编辑设置为所有父级。你应该发布一个答案。我会接受它的。 - Allain Lalonde
所以,在这个例子中,:first 获取最接近 $(this) 并且具有 .classYouWant 的父级元素?所以它是在 DOM 中向上工作的? - Jay Corbett

11
$( this ).closest( '.yourselector' )

正如其名称所示,找到与this元素最接近的祖先元素。


+1 这是我的首选,当我知道我只需要一个元素时。 - dano

3

2
您可以使用父级选择器。例如,$(".myclass:parent").something();将查找所有具有子元素的类名为myclass的元素。

虽然正确,但它并没有回答问题,因为它没有找到特定DOM元素的父级。 - Allain Lalonde

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接