2009-06-25 119 views
3

我想在每个表格行的最后一个单元格上应用右对齐,跳过页面上的第一个表格并跳过每个表格的第一行。除了第一个表格以外,每个表格上的第一行除外,每行都有jQuery选择器

我写了下面:

$("table:gt(0) tr:gt(0) td:last-child").css("text-align", "right"); 
  1. 第一选择后的表格。好。
  2. 每一行中的最后一个单元格都是右对齐的。好。
  3. 跳过结果集中第一个表中的第一行。好。
  4. 结果集中后续表中的每个第一行都应用了样式。坏。

我试过将一个函数传递给包装集上的“每个”方法,但那是行不通的。有任何想法吗?

回答

14

你几乎在那里。

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

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

+0

太棒了!那样做了。 – 2009-06-25 20:57:47

0

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

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

1

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

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

可能不是最好的方式,但这是我该怎么做。

+0

谢谢,这看起来也是一个很好的方法。我尝试了类似的东西,但没有把它做得很对。 – 2009-06-25 20:59:58

2

尝试

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

为GT(0)仅是指你正在构建,而不是表jQuery对象的索引。

+0

也可以。谢谢。 – 2009-06-25 21:02:11

相关问题