2011-04-12 68 views
0

我正在选择特定表格的单元格。jquery select table columns

一些单元格有一类“testOff”,我试图将表格行更改为不同的颜色,如果该类存在。

这里是我到目前为止有:

$("table#customersTable td.testOff").each(function(){ 

    $(this).closest("tr").css("background-color","#F6CCDA"); 

}); 

我必须失去了一些东西,因为它没有显示任何单元格的背景色。 有没有人看到我如何选择错误?

+0

我们可以看到HTML恳求 – mcgrailm 2011-04-12 18:01:04

+0

这应该工作,我们可以看到HTML?你不需要'.each()',你可以'$(“table#customersTable td.testOff”)。closest(“tr”).css(“background-color”,“#F6CCDA”); ' – mVChr 2011-04-12 18:03:29

+0

'td'本身是否有背景色?它会覆盖'tr',如果是这样的话......你可能需要选择最接近的'tr'的子'td's或'td.testoff'和它的兄弟姐妹,以显示颜色 – clairesuzy 2011-04-12 18:17:33

回答

1

您可以使用类似:

$('td.testOff').closest('tr').addClass('highlightColour'); 

CSS:

.highlight, 
.highlight td /* this part's important, and ensures that the 'highlight' colour is seen in the td elements */ 
{ 
    background-color: #ffa; 
} 

JS Fiddle demo

顺便说一句:您不需要each(),因为选择器将返回并处理一组元素。

参考文献:

0
$('#customersTable td.testOff').closest('tr').addClass('highlightColour').css("background-color","#F6CCDA"); 

working demo

1

您可以使用:has选择:

$('#customersTable tr:has(td.testOff)').css('background-color', '#f6ccda'); 
0
$("td.testOff").parent().children().css("background-color","#F6CCDA"); 

按我前面的问题,以防万一它是td细胞本身,你需要为目标,以覆盖之前的设置

siblings(),因为我也是在我的评论中提到,将只能选择在.testOff两侧的细胞 - 这个发现所有的孩子它的父tr