我有一个表,我正在使用jquery
突出显示表中的备用列$("table.Table22 tr td:nth-child(even)").css("background","blue");
但是我在<table>
内有另一个<tr>
作为最后一行。如何避免突出显示<tr>
内的表格列?
答案 0 :(得分:7)
使用>
后代选择器对其进行限定:
$("table.Table22 > tbody > tr > td:nth-child(even)").css("background","blue");
您也需要tbody
限定符,因为浏览器会自动插入tbody
,无论您是否在标记中 。
编辑:woops。谢谢安南。
编辑2 :强调tbody。
答案 1 :(得分:0)
未经测试但可能:http://docs.jquery.com/Traversing/not#expr
$("table.Table22 tr td:nth-child(even)").not("table.Table22 tr td table").css("background","blue");
答案 2 :(得分:0)
以下是我用来在表格中执行嵌套复选框突出显示的一些代码。我需要能够“检查所有/取消选中所有”,但只能在嵌套内的单个级别内进行;也就是说,我也不希望子元素被选中。
var parentTable = $(this).parents("table:first");
var exclusions = parentTable.find("table :checkbox.select");
var checkboxes = parentTable.find(":checkbox.select").not(exclusions);
我得到的第一个表格位于我当前的第一个表格中,获取下面的所有复选框这个新找到的父表,然后将它们从我能找到的完整复选框列表中排除。基本上,我找到了每个复选框,但随后排除了我找到的任何子复选框。
同样可以适用于您的情况;用列替换复选框选择。
答案 3 :(得分:0)
为什么不使用html的优势?
而不是
<table>
<tr>
<td>
...
</td>
</tr>
</table>
尝试
<table>
<tfoot>
<tr>
<td>
...
</td>
</tr>
</tfoot>
<tbody>
<tr>
<td>
...
</td>
</tr>
</tbody>
</table>
您也可以使用<thead>
标记来操纵标题。
现在你可以在
上调用选择器了$("table.Table22 tbody tr td:nth-child(even)").css("background","blue")
答案 4 :(得分:0)
您是否测试过以下内容?
$("table.Table22 tr td:nth-child(even):not(:last-child)").css("background","blue")
答案 5 :(得分:0)
此页面定义了一个用于选择列的不错功能 http://programanddesign.com/js/jquery-select-table-column-or-row/