2011-07-05 10 views
34

Jak mogę dodać klasę do pierwszego i drugiego td w każdym tr?jQuery Wybierz pierwszy i drugi 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> 

Dla pierwszego td to nic nie robi?

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

Czy mogę również używać drugiego dziecka?

+0

[To wygląda Twój kod powinien działać.] (Http://jsfiddle.net/hr5gT/) – sdleihssirhc

+0

To właśnie wybiera pierwszy td, nie kolejnych punktów . – stef

Odpowiedz

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

Miałem stół, który był w

, a nie div i nie działał. – Misi

17

Aby wybrać pierwszą i drugą komórkę w każdym wierszu, można to zrobić:

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

Podoba mi się 'slice()', ponieważ sprawia, że ​​jest nieco czystszy niż rozwiązanie Jamesa Montagne. –

+0

Podoba mi się jedno wezwanie do tego, mimo że 2 połączenie jest prostsze (głosowanie na oba). Ciągle dostaję się przez plaster (początek, koniec) wyklucza "koniec". 0, 2 (tak jak ty to masz) oznacza 1 i 2. (nie od 1 do 3). – goodeye

3

Jeśli chcesz dodać klasę do pierwszego i drugim td można użyć .each() i 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'); 
}); 

inny:

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

Można po prostu wybrać następną TD:

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

Działa to tylko na drugim td, prawda? – koppor

+0

Tak, robi ... – Steeven

9

można zrobić w ten sposób również

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

Jeżeli liczba tr jest w tablicy

$.each(prop , function() { 
    var gotTD = $(this).find('td:eq(1)');     
}); 
Powiązane problemy