2012-11-12 22 views
5

ho questa struttura:Ottenere genitore e primo figlio arco jQuery

<div class="list"> 
    <ul> 
     <li> 
      <span class="number">1</span> 
      <p class="list-title"><a href="#">Welcome</a></p> 
      <img src="images/like.png" class="like" /> 

      <div class="subcomments"> 
       <div class="comments"> 
       <ul> 
        <li> 
         <span class="number">2</span> 
         <img src="images/like.png" class="like" /> 
        </li> 
       </ul> 
      </div> 
     </div> 
    </li> 
</ul> 

E voglio quando clic sulla classe "come" viene visualizzato il contenuto di span.number, cioè va al padre e ottiene il contenuto dello span con il numero di classe.

sto cercando questo:

$('.like').parent().children('span:first').text() 

Ma mi dà sempre 1 nelle due situazioni, invece di dare 1 nel primo come, e 2 nel secondo come.

risposta

3

È necessario jquery siblings(),

Live Demo

$('.like').siblings('span:first').text(); 
+0

Ha funzionato, grazie! –

0

si dovrebbe usare this

$(.link).click(function() { 
    $(this).parent().find('.number').text(); 
    // $(this).parent().find('span:first').text(); // same thing 
    // $(this).closest('.number').text();   // same thing 
}) 

quando basta scrivere $('.link').parent().find('span:first').text(); sempre ci vorrà prima classe .link e prendere il suo valore di span, quando si utilizza this utilizza esattamente questo .link che avete cliccato su

0

Uso .siblings():

$('.like').siblings('span:first').text(); 

Questo di per sé sarà sempre mostrare 1 - perché il selettore .like restituisce 2 elementi - con il seguente codice (.siblings('span:first').text();) in esecuzione contro il primo elemento entrambe le volte - è necessario utilizzare ognuno per ripetere ogni valore:

$('.like').each(function() { 
    alert($(this).siblings('span:first').text()); 
})​ 

Example here

+0

Mostrami 1 nelle due situazioni. –

+0

@JamesCtreli ne mostra uno perché non si utilizza ognuno per scorrere le selezioni '.like'. Vedi il mio aggiornamento – ManseUK

Problemi correlati