使用jQuery突出显示表中的列

时间:2009-01-30 03:15:18

标签: javascript jquery

我有一个表,我正在使用jquery

突出显示表中的备用列
$("table.Table22 tr td:nth-child(even)").css("background","blue");

但是我在<table>内有另一个<tr>作为最后一行。如何避免突出显示<tr>内的表格列?

6 个答案:

答案 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/