jQuery选择器除了第一个以外的每个表上的第一行之外的每一行

时间:2009-06-25 19:59:56

标签: jquery css-selectors

我想在每个表行的最后一个单元格上应用右对齐,跳过页面上的第一个表格并跳过每个表格的第一行。

我写了以下内容:

$("table:gt(0) tr:gt(0) td:last-child").css("text-align", "right");
  1. 选择第一个之后的表格。 GOOD。
  2. 每行中的最后一个单元格对齐。 GOOD。
  3. 跳过结果集中第一个表中的第一行。 GOOD。
  4. 结果集中后续表中的每个第一行都应用了样式。 BAD。
  5. 我已经尝试将函数传递给包装集上的“each”方法,但这不起作用。有什么想法吗?

5 个答案:

答案 0 :(得分:14)

你快到了。

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

否则,tr:gt(0)总是为真,因为jquery正在查看每个tr,而不是每个表中的每个tr。

答案 1 :(得分:2)

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

因为gt(0)只引用你正在构建的jQuery对象中的索引,而不是表。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

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

同样地将类添加到您希望样式转到的表中。