2015-12-01 9 views
6

Ho una tabella in cui ho bisogno delle prime due celle di ogni riga cliccabili (NON l'intera riga). Quando clicco sulla prima o sulla cella seccond, voglio ottenere il valore della terza cella di quella stessa riga. Per chiarire, quando premo il a1 Voglio che l'avviso mostri c1, Se premo Voglio che mostri c2 e Se premo c3 Non voglio che accada nulla.ottenendo nth-child del genitore

Come potete vedere, il mio alert($(this).parent(':nth-child(3)').text()); non funziona .. come posso ottenere questo?

$('td:nth-child(-n+2)').on("click", function(){ 
 
    alert($(this).parent(':nth-child(3)').text()); //Doesn't work 
 
});
td{ 
 
    border: 1px solid black; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<table> 
 
    <tr> 
 
     <td>a1</td> 
 
     <td>b1</td> 
 
     <td>c1</td> 
 
    </tr> 
 
    <tr> 
 
     <td>a2</td> 
 
     <td>b2</td> 
 
     <td>c2</td> 
 
    </tr> 
 
    <tr> 
 
     <td>a3</td> 
 
     <td>b3</td> 
 
     <td>c3</td> 
 
    </tr> 
 
</table>

+1

'demo' ** ** deve essere in questione si –

+0

@ A.Wolff eh, che cosa? Elaborato per favore, non capisco cosa intendi –

+1

Devi pubblicare tutto il codice pertinente in questione, altrimenti guadagnerai downvotes (credo). EDIT: comunque, questo è quello che vuoi: '$ (this) .parent(). Children (': nth-child (3)'). Text()' –

risposta

7

è necessario utilizzare .closest('tr') .. per selezionare tr genitore e .find() per selezionare td:nth-child(3)

$('td:nth-child(-n+2)').on("click", function(){ 
    alert($(this).closest('tr').find('td:nth-child(3)').text()); 
}); 

Working Demo

+1

@ AlexChar hai ragione ... aggiornato = D –

+0

Ehi, quell'utente ha la sospensione per le irregolarità del voto. –

+0

@AnoopJoshi come è? e non so perché ?? stava cercando upvotes come chiunque di noi è in cerca anche di qualcuno di noi più volte cercando di essere più utile di upvotes .. Non sono contento di quello .. come @A Wolff ha detto prima forse non era una copia/incolla codice forse suo proprio e sfortunatamente a lui l'ho postato più velocemente :(. –

4

È possibile utilizzare

$('td:lt(2)').on("click", function() { 
    alert($(this).parent().find("td:eq(2)").text()); //Doesn't work 
}); 

Fiddle

  • lt(2) otterrà gli elementi specificati cui indice è inferiore a 2
  • eq(2) selezionerà l'elemento il cui indice è uguale a 2
3

Usa questa

$(this).parent().children(':nth-child(3)').text() 

Seleziona il pa affitto e poi un figlio di esso.

JsFiddle

0

questo lavoro per me:

$('table tr').each(function(){ 
    $(this).find('td:lt(2)').on("click", function() { 
      var text = $(this).parent().find("td:eq(2)").text(); 
      console.log(text); 
    }); 
}); 
Problemi correlati