2011-07-05 109 views
34

¿Cómo puedo agregar una clase a la primera y segunda td en cada punto?jQuery Seleccionar primera y segunda td

<div class='location'> 
<table> 
<tbody> 
<tr> 
<td>THIS ONE</td> 
<td>THIS ONE</td> 
<td>else</td> 
<td>here</td> 
</tr> 
<tr> 
<td>THIS ONE</td> 
<td>THIS ONE</td> 
<td>else</td> 
<td>here</td> 
</tr> 
</tbody> 
</table> 
</div> 

Para la primera td, ¿esto no es válido?

$(".location table tbody tr td:first-child").addClass("black"); 

¿Puedo usar también el segundo hijo?

+0

[Parece que el código debe trabajar.] (Http://jsfiddle.net/hr5gT/) – sdleihssirhc

+0

Simplemente selecciona el primer td, no los posteriores . – stef

Respuesta

80
$(".location table tbody tr td:first-child").addClass("black"); 
$(".location table tbody tr td:nth-child(2)").addClass("black"); 

http://jsfiddle.net/68wbx/1/

+0

Tenía una tabla que estaba en un

, no un div y no funcionó. – Misi

17

para seleccionar la primera y la segunda celda en cada fila, se puede hacer esto:

$(".location table tbody tr").each(function() { 
    $(this).children('td').slice(0, 2).addClass("black"); 
}); 
+0

Me gusta el 'slice()' porque lo hace un poco más limpio que la solución de James Montagne. –

+0

Me gusta la única llamada de esto, aunque la llamada 2 es más simple (votó por ambas). Sigo siendo atrapado por slice (inicio, fin) excluye el "final". 0, 2 (al igual que lo tiene) significa el 1 ° y el 2 °. (no del 1 ° al 3 °) – goodeye

3

Si desea agregar una clase a la primera y segundo td puede utilizar .each() y slice()

$(".location table tbody tr").each(function(){ 
    $(this).find("td").slice(0, 2).addClass("black"); 
}); 

Example on jsfiddle

2
$(".location table tbody tr").each(function(){ 
    $('td:first', this).addClass('black').next().addClass('black'); 
}); 

otra:

$(".location table tbody tr").find('td:first, td:nth-child(2)').addClass('black'); 
0

Usted sólo puede elegir la siguiente td:

$(".location table tbody tr td:first-child").next("td").addClass("black"); 
+0

Esto solo funciona en la segunda td, ¿no? – koppor

+0

Sí, lo hace ... – Steeven

9

Usted puede hacer de esta manera también

var prop = $('.someProperty').closest('tr'); 

Si el número de tr es en conjunto

$.each(prop , function() { 
    var gotTD = $(this).find('td:eq(1)');     
}); 
Cuestiones relacionadas