web-dev-qa-db-fra.com

Comment trouver le premier élément parent dans jQuery

Considérez ci-dessous html -

<div class="container1">
   <div class="container2">
      <div class="container3">
         <div class="container4">
             <div class="element">
             ...
         </div>
      </div>
   </div>
</div>

si je veux obtenir l'élément <div class="element"> et que j'ai une référence au container1. En fait, ce que je fais est

$(".container1").find(".element")

au lieu de -

$(".container1").children().children().children().find(".element")

Ce processus permet de rechercher un élément enfant lorsque je fais référence à un élément parent. Mais au lieu de cela quand je fais référence à un élément enfant et que je veux obtenir un élément parent, chaque fois que je dois monter d'un niveau -

$(".element").parent().parent().parent().parent()

et je ne peux pas faire comme ça -

$(".element").findParent()

Je n'ai rencontré aucune méthode comme findParent () dans jQuery. Y a-t-il des choses dont je ne suis pas au courant? Ou n'est-ce pas là pour une raison quelconque?

11
Ashwin
$(".element").parents();

donnera à tous les parents de .element(y compris html et body)}

D&EACUTE;MO

Pour trouver un parent spécifique, supposons container1 puis

$('.element').parents('.container1')

D&EACUTE;MO

jQuery .parents() trouve généralement tous les parents, mais si vous avez passé un sélecteur, il le recherchera.

27
thecodeparadox

juste utiliser

$(".element").closest('#container1');

si aucun ancêtre avec cette id n'est trouvé alors 

$(".element").closest('#container1').length sera 0

14
fcalderan

Pour obtenir le premier parent personnellement, j'utilise la construction suivante:

var count_parents = $(".element").parents().length;
$(".element").parents().eq(count_parents - 1);

J'espère que ce sera utile pour quelqu'un.

1
Paul Basenko