2012-06-27 6 views
11

consi ci-dessous html -Comment trouver premier élément parent dans jquery

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

si je veux obtenir élément <div class="element"> et je référence à la container1. En jquery ce que je fais est,

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

au lieu de -

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

Ce processus est de trouver un élément enfant quand j'ai référence à un quelconque de l'élément parent. Mais au lieu quand j'ai référence à un élément enfant et que vous souhaitez obtenir élément parent alors chaque fois que je dois remonter d'un niveau -

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

et je ne peux pas le faire comme ça -

$(".element").findParent() 

Je n'ai rencontré aucune méthode comme findParent() dans jquery. Est-ce que je ne suis pas au courant? Ou n'est-ce pas là pour une raison quelconque?

Répondre

27
$(".element").parents(); 

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

DEMO

Pour tout parent spécifique, supposons que container1 alors

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

DEMO

jQuery .parents() généralement trouver tous les parents, mais si vous avez passé un sélecteur alors il chercher cela.

+0

C'est parfait, pourquoi je ne l'ai pas appris à ce sujet. – Ashwin

+1

Dang, tu m'as battu pour poster ça. : P – transparent

+0

@MotaBOS merci, mate – thecodeparadox

14

il suffit d'utiliser

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

si aucun ancêtre avec cette id se trouve alors

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

1

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

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

Hope, il sera utile pour quelqu'un.

Questions connexes