jquery选择除最后一组之外的所有元素

Ant*_*ony 34 jquery jquery-selectors

我有一张表看起来像:

<table>
   <tr>
      <td>one</td><td>two</td><td>three</td><td>last</td>
   </tr>
   <tr>
      <td>blue</td><td>red</td><td>green</td><td>last</td>
   </tr>
   <tr>
      <td>Monday</td><td>Tuesday</td><td>Wednesday</td><td>last</td>
   </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

我想要的是一个jquery选择器,它将选择除td每个表行的最后一个之外的所有表.我试过了:

$("tr td:not(:last)").css("background-color","red");
  //changing color just as a test...
Run Code Online (Sandbox Code Playgroud)

但是,不是所有单元格而是每行的最后一个单元格都被更改,所有单元格,但是表格中的最后一个单元格都被选中.同样,如果我将其更改为:

$("tr td:last").css("background-color","red");
Run Code Online (Sandbox Code Playgroud)

唯一改变的是最后一个细胞.如何选择每行的最后一个(或不是最后一个)?

Nic*_*ver 57

用这个:

$('tr td:not(:last-child)').css('background-color', 'red');
Run Code Online (Sandbox Code Playgroud)

它说每一个<td>都不是那个特定的最后一个<tr>

  • 只是td,因为选择器中没有空格意味着`:`运算符适用于同一个元素,在本例中是`<td>`.所以只是第一级孩子,如果你有一个带有嵌套td的表,将选择器更改为`tr> td:not(:last-child)`,这样可以确保你所使用的任何table/tr的第一个子节点. (4认同)

Ale*_*ini 15

$('tr').find('td:not(:last)').css('background-color', 'red');
Run Code Online (Sandbox Code Playgroud)

转换为:对于$('tr')选择器中的每个元素,find()对所有td不是最后的元素执行a .现在
有了新的结果td,所以你可以.css()按需要申请.