2011-11-28 42 views
30

是否可以选择没有类attr的最后一个孩子? 像这样:结合:最后一个孩子在:CSS中没有(.class)选择器

<tr> ... </tr> 
<tr> ... </tr> 
<tr> ... </tr> 
<tr class="table_vert_controls"> ... </tr> 

我要选择第三行,在这种情况下。

我尝试以下,没有工作:

tr:not(.table_vert_controls):last-child 

在此先感谢。

+3

我认为这是你期望的。请参阅** BoltClock **答案** [CSS3:nth-​​child(奇数)与选择器](http://stackoverflow.com/a/5546296/500725)** –

+0

感谢提示Siva!这不完全是我需要的,但我最终使用了第n个孩子。由于该类的行总是最后一行,我使用nth-last-child选择我需要的行。 – dcastro

+0

@dcastro:和'tr:nth-​​last-child(2)'一样?这也起作用:) – BoltClock

回答

25

不单独CSS选择器,没有,因为:last-child特别是着眼于最后一个子,并没有类似的:last-of-class伪类。看到我的回答this related question

自2015年年底,实现也开始慢慢4的扩展滴在选择器:nth-child():nth-last-child(),让你可以任意选择作为参数传递(更多的也是在更新到链接的答案)。然后,您就可以写:

tr:nth-last-child(1 of :not(.table_vert_controls)) 

虽然实现最近已经开始出货,它仍然需要至少数个月,如果不是一年为此得到广泛支持。与此同时,你将不得不使用别的东西,比如在有问题的类之前的额外类,或者jQuery选择器:

$('tr:not(.table_vert_controls):last') 
+0

':最后一种类型'听起来够不够,不会工作吗? – Tomalak

+5

@Tomalak:不,因为':last-of-type'没有函数表示法,只看元素类型(在本例中为'tr')。 – BoltClock

+0

谢谢。我已经删除了它。 (你的jQuery代码是我的答案的第一个版本,直到我注意到这不是关于jQuery的第一个地方......) – Tomalak

相关问题