2013-02-19 3 views
5

J'ai une table une rangée et plusieurs tds dans cette ligne, comme ça:Sélectionnez le 3ème <td> en utilisant jQuery?

<tr class="first odd"> 
    <td class="a-center"> 
    <td>...</td> 
    <td>...</td> --> I want this 
    <td>...</td> 
    <td>...</td> 
    <td>...</td> 
</tr> 

Je suis en mesure d'obtenir la tr mère de tous les tds, mais est-il un moyen d'obtenir la 3e td à l'intérieur du tr seulement?

Le code pour obtenir le tr est:

jQuery('#shopping-cart-table > tbody > tr').each(function(index, value) { 
    ... 
}); 

Merci

+0

double possible de [comment sélectionner n-ième td d'un tr en utilisant jquery] (http://stackoverflow.com/questions/7229145/how-to-select -n-th-td-de-a-tr-using-jquery) –

Répondre

10

Vous pouvez utiliser sélecteur :eq:

jQuery('#shopping-cart-table > tbody > tr').each(function(index, value) { 
    $('td:eq(2)', this) 
}); 

Ou:

jQuery('#shopping-cart-table tbody').find('td:eq(2)'); 
+0

Pourquoi le ça et le foo? – user1856596

+0

@ user1856596 C'est '$ (selector, context)', 'this' fait référence à l'actuel' tr'. – undefined

+0

Très bien! Cela semble prometteur. – user1856596

2

Utilisez le: eq fonctionner en jQ uery: http://api.jquery.com/eq/

$('#shopping-cart-table td').eq(2); 
+0

.eq (3) représentera le quatrième td – Gautam3164

+0

Corrigé. P.s, votre solution ne fonctionnera pas dans les versions antérieures d'IE. –

+0

jQuery ('# shopping-cart-table> td: eq (2)'); IE doit causer des conflits avec ce pas le mien .... J'ai vérifié – Gautam3164

1

Essayez avec cette

$("#shopping-cart-table > tbody > tr td").eq(2); 
1

Essayez comme ceci:

$(".first td:nth-child(3)").append("<span>-3rd"); 
0

c'est le meilleur et le plus simple code. Vous pouvez cliquer sur le bouton dans cette ligne puis il vous montrera la valeur thrid. si cette table:

<tr class="first odd"> 
    <td class="a-center"> 
    <td>...</td> 
    <td>...</td> --> I want this 
    <td>...</td> 
    <td>...</td> 
    <td><button id='test'><button></td> 
</tr> 

puis en javascript lier avec le bouton événement click comme indiqué ci-dessous: -

$(document).ready(function() { 
    $('#test').click(function(){ 
     var thirdData = $(this).closest('tr').children('td:eq(2)').text(); 
     alert(thirdData); 
    }); 
}); 

cela va résoudre le problème.

0

réponse pour le titre:

$("#tableId tr td:nth-child(3)").html(); 
Questions connexes