Как найти первый родительский элемент в 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);

надеюсь, это будет полезно для кого-то.