使用jQuery突出显示表中的列

我有一个表,我使用jquery突出显示表中的备用列

$("table.Table22 tr td:nth-child(even)").css("background","blue"); 

但是我在

有另一个

作为最后一行。 如何避免突出显示

内的表列?

使用>后代选择器限定它:

 $("table.Table22 > tbody > tr > td:nth-child(even)").css("background","blue"); 

您也需要tbody限定符,因为浏览器会自动插入tbody 无论您是否在标记中都有

编辑 :woops。 谢谢安南。

编辑2 :强调tbody。

未经测试但可能: http : //docs.jquery.com/Traversing/not#expr

 $("table.Table22 tr td:nth-child(even)").not("table.Table22 tr td table").css("background","blue"); 

这是我用来在表格中进行嵌套复选框突出显示的一些代码。 我需要能够“检查所有/取消全部检查”,但只能在嵌套内的单个级别内进行; 也就是说,我也不希望子元素被选中。

 var parentTable = $(this).parents("table:first"); var exclusions = parentTable.find("table :checkbox.select"); var checkboxes = parentTable.find(":checkbox.select").not(exclusions); 

我得到的第一个表位于我当前的第一个表中,得到这个新找到的父表下面的所有复选框,然后将它们从我能找到的完整复选框列表中排除。 基本上,我找到了每个复选框,但随后排除了我发现的任何子复选框。

在你的情况下可以适应相同的情况; 用列替换复选框选择。

为什么不使用html的优点?

代替

 
...

尝试

 
...
...

您也可以使用

标记来操作标题。

现在你可以调用选择器了

 $("table.Table22 tbody tr td:nth-child(even)").css("background","blue") 

你测试过以下的吗?

 $("table.Table22 tr td:nth-child(even):not(:last-child)").css("background","blue") 

此页面定义了一个用于选择列的很好的函数http://programanddesign.com/js/jquery-select-table-column-or-row/