2012-02-21 48 views
1

我有一个表的一些数据。某些事件发生后,我想突出显示栏。突出搜索表数据和列

http://jsfiddle.net/bpGaf/

jQuery('#tableFilter td:eq(2)').each(function(){ 
    jQuery(this).css('background-color','#cc0');}); 

但只突出一个连我都用每个功能细胞。

+0

它使用的是bqz:eq(2)。如果使用这个,它只会突出显示特定单元 – Gopesh 2012-02-21 08:10:58

+0

另外,请考虑使用CSS类。稍后从样式表中更改应用于选定单元格的特定颜色和样式要比在javascript中查找位置以更改它更容易。 – GregL 2012-02-21 08:18:42

回答

4

你选择说“里面所有#tableFilter<td>元素中,只考虑3一”,而不是“在第三个<td>在每个<tr>内部的表“,因为它应该。

这会做你想要它做的事情:

jQuery('#tableFilter tr').each(function() { 
    jQuery(this).find('td:eq(2)').css('background-color', '#cc0'); 
});​ 

jsFiddle demo

+1

感谢您的详细信息和代码。它现在的工作:) – 2012-02-21 10:03:17

2

试试这个,它更小的解决方案:

jQuery('#tableFilter tr').find('td:eq(2)').css('background-color','#cc0'); 
+0

Lol,几乎与我的代码相同,在我发布它之前的几秒钟,但你没有解释他的代码为什么不起作用。但我很高兴我们都同意正确的做法。 – GregL 2012-02-21 08:09:18

+0

好吧,我改变了我的答案,以一个更小的解决方案;) – silly 2012-02-21 08:13:40

+0

不错,我没有想到这种单线的方式。虽然,AFAIK,jQuery只是在你的代码的幕后做一个'.each()'循环,它只是不会让你的代码混乱。 :-) – GregL 2012-02-21 08:16:51

2

最短的代码突出第三个colu mn:

$('#tableFilter td:nth-​​child(3)')。css('background','#cc0');

+1

不错,简洁,和':nth-​​child()'选择器的很大用处。 – GregL 2012-02-21 10:05:36