考虑下面的html -
<div class="container1">
<div class="container2">
<div class="container3">
<div class="container4">
<div class="element">
...
</div>
</div>
</div>
</div>
如果我想获得<div class="element">
元素,并且我引用了container1
。在jquery我做的是,
$(".container1").find(".element")
而不是 -
$(".container1").children().children().children().find(".element")
当我引用任何父元素时,这是查找任何子元素的过程。但是当我引用一个子元素并希望获得父元素时,每次我必须升级一级 -
$(".element").parent().parent().parent().parent()
我不能这样做 -
$(".element").findParent()
我没有在jquery中遇到像findParent()这样的任何方法。有没有我不知道的?或者它出于某种原因不存在?
答案 0 :(得分:27)
$(".element").parents();
将为.element
的所有家长提供(包括html
和body
)
<强> DEMO 强>
要查找任何特定的父级,请假设container1
然后
$('.element').parents('.container1')
<强> DEMO 强>
jQuery .parents()
通常会找到所有父母,但如果你通过了一个选择器,那么它会搜索它。
答案 1 :(得分:14)
只需使用
$(".element").closest('#container1');
如果没有找到id
的祖先,那么
$(".element").closest('#container1').length
将为0
答案 2 :(得分:1)
为了亲自获得第一位父母,我使用以下结构:
var count_parents = $(".element").parents().length;
$(".element").parents().eq(count_parents - 1);
希望,对某人有帮助。