2011-07-05 37 views
34

Làm cách nào để thêm lớp vào td thứ nhất và thứ hai trong mỗi tr?jQuery Chọn td đầu tiên và thứ hai

<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> 

Lần đầu tiên, điều này không có gì?

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

Tôi cũng có thể sử dụng con thứ hai không?

+0

[Dường như mã của bạn nên làm việc.] (Http://jsfiddle.net/hr5gT/) – sdleihssirhc

+0

Nó chỉ chọn td đầu tiên, những người không tiếp theo . – stef

Trả lời

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

Tôi đã có một bảng đã được vào một

, không phải là một div và nó đã không hoạt động. – Misi

17

Để chọn đầu tiên và phần tử thứ hai trong mỗi hàng, bạn có thể làm điều này:

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

Tôi thích 'slice()' bởi vì nó làm cho nó sạch hơn một chút so với giải pháp của James Montagne. –

+0

Tôi thích cuộc gọi này, mặc dù 2 cuộc gọi đơn giản hơn (được bình chọn cho cả hai). Tôi tiếp tục bị bắt bởi slice (bắt đầu, kết thúc) không bao gồm phần "kết thúc". 0, 2 (giống như bạn có nó) có nghĩa là số 1 và số 2. (không phải từ thứ 1 đến thứ 3). – goodeye

3

Nếu bạn muốn thêm một lớp học để các td thứ hai đầu tiên bạn có thể sử dụng .each()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'); 
}); 

khác:

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

Bạn chỉ có thể chọn td tiếp theo:

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

Điều này chỉ hoạt động trên td thứ hai, phải không? – koppor

+0

Có, nó có ... – Steeven

9

Bạn có thể làm theo cách này cũng

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

Nếu số tr là trong mảng

$.each(prop , function() { 
    var gotTD = $(this).find('td:eq(1)');     
}); 
Các vấn đề liên quan