2011-07-05 246 views
34

如何在每个tr中为第一个和第二个td添加一个类?jQuery选择第一个和第二个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> 

对于第一个td,这什么都不做?

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

我还可以使用二胎吗?

+0

[看起来你的代码应该工作。(http://jsfiddle.net/hr5gT/) – sdleihssirhc

+0

它只是选择了第一个TD,没有后续各个。 – stef

回答

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

我有一张桌子,进入

,而不是一个div,它没有工作。 – Misi

17

要选择第一和每一行的第二个单元格,你可以这样做:如果你想添加一个类第一秒TD可以使用

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

我喜欢slice(),因为它比James Montagne的解决方案稍微更清洁。 –

+0

我喜欢这个电话,即使2个电话看起来更简单(两者都投了票)。我一直被切片(开始,结束)排除“结束”之一。 0,2(就像你拥有它)意味着第一和第二。 (不是第1到第3)。 – goodeye

3

.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'); 
}); 

另:

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

你可以随便挑下一个TD:

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

这只适用于第二个td,不是吗? – koppor

+0

是的,它确实... – Steeven

9

您可以通过这种方式也

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

如果TR的数量是在阵列

$.each(prop , function() { 
    var gotTD = $(this).find('td:eq(1)');     
}); 
相关问题