Как найти первый родительский элемент в jQuery
Conside ниже 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()
Я не сталкивался с каким-либо методом, таким как findParent() в jquery. Есть которых я не знаю? Или по какой-то причине его нет?
3 ответов
$(".element").parents();
отдам всем родителям .element
(включая html
и body
)
чтобы найти любого конкретного родителя, предположим container1
затем
$('.element').parents('.container1')
jQuery .parents()
обычно найти всех родителей, но если вы прошли селектор, то он будет искать это.
просто использовать
$(".element").closest('#container1');
если нет предка, что id
а после
$(".element").closest('#container1').length
будет 0
получить первого родителя лично я использую следующую конструкцию:
var count_parents = $(".element").parents().length;
$(".element").parents().eq(count_parents - 1);
надеюсь, это будет полезно для кого-то.