2012-06-27 11 views
11

Conside sotto html -Come trovare primo elemento genitore in jQuery

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

se voglio ottenere <div class="element"> elemento e devo riferimento al container1. In jQuery quello che faccio è,

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

invece di -

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

Questo è il processo di trovare qualsiasi elemento figlio quando devo riferimento a qualsiasi dell'elemento genitore. Ma invece quando devo riferimento a un elemento figlio e voglio ottenere elemento padre allora ogni volta che devo andare a un livello superiore -

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

e non posso fare come questo -

$(".element").findParent() 

Non ho incontrato alcun metodo come findParent() in jQuery. C'è di cui non sono a conoscenza? O non è lì per qualche motivo?

risposta

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

darà a tutti i genitori di .element(compresi html e body)

DEMO

Per trovare qualsiasi genitore specifico, si supponga container1 poi

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

DEMO

jQuery .parents() generalmente trovare tutti i genitori, ma se hai superato un selettore allora sarà cercalo.

+0

Questo è perfetto, perché non ne sono venuto a conoscenza. – Ashwin

+1

Dang, mi hai battuto per postare questo. : P – transparent

+0

@MotaBOS grazie, amico – thecodeparadox

14

basta usare

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

se nessun antenato con quella id si trova quindi

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

1

per ottenere il primo genitore personalmente utilizzo la seguente costruzione:

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

Speranza, sarà utile per qualcuno.

Problemi correlati