我有一个<div>
,其中包含许多其他<div>
个,每个都在不同的嵌套级别。我不是给每个孩子<div>
一个标识符,而是给根<div>
标识符。这是一个例子:
<div class="a" id="a5">
<div class="b">
<div class="c">
<a class="d">
</a>
</div>
</div>
</div>
如果我在jQuery中编写一个函数来响应类d
并且我想找到它的父类a
的ID,我该怎么做?
我不能简单地执行$('.a').attr('id');
,因为有多个类a
。我可以找到它的父母的父母的ID,但这似乎设计很差,速度慢,而且不是非常多态(我必须编写不同的代码来查找类c
的ID)。
答案 0 :(得分:408)
答案 1 :(得分:19)
答案 2 :(得分:4)
您可以使用parents()获取具有给定选择器的所有父级。
描述:获取每个人的祖先 当前匹配组中的元素 元素,可选地由a过滤 选择器。
但是parent()只会得到元素的第一个父元素。
描述:获取每个的父级 当前匹配组中的元素 元素,可选地由a过滤 选择器。
我认为.parentsUntil()是最好的。
描述:获取每个人的祖先 当前匹配组中的元素 元素,但不包括 元素由选择器匹配。
答案 3 :(得分:1)
摘自上面@Resord的评论。这对我有用,并且对这个问题更感兴趣。
$(this).parent().closest('.a');
谢谢
答案 4 :(得分:1)
<div id="412412412" class="input-group date">
<div class="input-group-prepend">
<button class="btn btn-danger" type="button">Button Click</button>
<input type="text" class="form-control" value="">
</div>
</div>
在我的情况下,我使用以下代码:
$(this).parent().closest('.date').attr('id')
答案 5 :(得分:-1)
使用.parentsUntil()
$(".d").parentsUntil(".a");