我有一个包含多个表的页面,我想格式化每个表,以便每个其他行的第二个单元格具有特定的背景颜色。 我在回答这个问题的初始版本时尝试了以下jQuery代码:
$('table tr:odd td:nth-child(2)').css("background-color", "#F6F3EE");
只要所有表具有偶数行,这都可以正常工作。如果不是这种情况,格式化将被反转,就好像jQuery认为s是一个表的一部分并且不会在每个表重新启动计数器。
这是一个js小提琴的链接来说明问题:
答案 0 :(得分:3)
您只选择了td
行后代的第一个tr.reg:even
元素。
尝试使用:nth-child()
替代方案:
$('table tr:odd td:nth-child(2)').css('background-color','#ffa');
注意:您必须记住,CSS :nth-child()
是基于一个的,而不是基于零的(因为JavaScript)。
已编辑以回应OP的评论,如下所示:
是的,我......错过了明显的(某种程度上)。我修改了上面的代码,依次查看每个......但它给我带来了一个问题。我编辑了你的jsfiddle演示,在第一个表中添加一行,从而给它一个不均匀的行数。现在第二个表的行被反向突出显示,这不是我想要的。你有解决方法吗?
table
,然后查找:odd
行和nth-child()
:
$('table').find('tr:odd td:nth-child(2)').css('background-color','#ffa');
参考文献:
答案 1 :(得分:1)
试试这个:
$('table tr.reg:even td:eq(1)').each(function(index) {
$(this).css("background-color", "#F4F4F8");
});
答案 2 :(得分:1)
最简单的解决方案就是:
$("table tr:even td:nth-child(2)").css("background-color", "#F4F4F8");
您可以在此处看到它:http://jsfiddle.net/rowanmanning/pBCkj/