除第一个表格外,每个表格的除第一行外的jQuery选择器

3
我希望对每个表格行的最后一个单元格应用右对齐,但是要跳过页面上第一个表格和每个表格的第一行。
我写了以下内容:
$("table:gt(0) tr:gt(0) td:last-child").css("text-align", "right");
  1. 选中第一个表格之后的表格。GOOD。
  2. 每一行的最后一个单元格右对齐。GOOD。
  3. 结果集中第一个表格的第一行被跳过。GOOD。
  4. 结果集中随后的每个表格的第一行应用了这种样式。BAD。

我尝试把一个函数传递给包装集上的“each”方法,但这不起作用。有什么想法吗?

5个回答

14

你差一点就做到了。

$("table:gt(0)").find("tr:gt(0) td:last-child").css("text-align", "right");
否则,tr:gt(0)始终为真,因为jQuery在查看每个而不是每个表格中的。

2

尝试

$("table:gt(0) tr:not(:first-child) td:last-child").css("text-align", "right");

由于gt(0)仅指向您正在构建的jQuery对象中的索引,而不是表格本身。


1
$("table:gt(0) tr").each(){
     if($(this).not(":first-child")){
           $(this).find("td:last-child").css("text-align","right");
     }
}

可能不是最好的方式,但这就是我会做的方法。


谢谢,这看起来也是一个不错的方法。我尝试过类似的东西,但没有完全做对。 - Bob_Kruger

1

使用DOM选择表格,然后使用jQuery将样式应用于表格有什么问题吗?代码行数太多了吗?


0

可能有更好的方法,但一个想法是为您不想具有样式的每个表的第一行添加一个类,并使用not(.myclass)过滤掉这些行。

同样,将类添加到您希望样式应用于的表中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接