2011-05-18 33 views
1

是否有选择提供了jQuery做类似:选择返回最接近<tr>只有当表中有超过2行

$(this).closest('tr:count(tr>2)'); 

this语境是<td>内的<input>元素。

免责声明:我知道这可以.length.size.filter.not等来实现,但我不知道是否有一个很好的办法做到这一点只用CSS选择器。

+0

请问,这究竟是什么? – 2011-05-18 08:26:39

+0

本地CSS选择器不支持选择父元素。我认为,jQuery对现有选择器语法的扩展并不能让你做你想问的问题。 – BoltClock 2011-05-18 08:28:59

+0

@Matti当点击输入按钮(删除行按钮)时,它应该删除该行,但只有当它不是表中最后一行时。第一个是标题,所以> 2. – 2011-05-18 08:40:00

回答

4

没有测试,但可能

$(this).closest('tr:not(:only-child)') 

假设tr只会有tr姐妹,这是没有道理的。

+1

确保有多行,但不一定多于2行。 – BoltClock 2011-05-18 08:40:43

+0

Yep BoltClock,它不会工作不幸的是> 2行,但会> 1。我最初尝试这个以防万一。这将工作,如果使用Matti的技术,把标题放在''部分 – 2011-05-18 08:46:19

+0

这是一个耻辱jQuery没有':多于孩子(2)'选择器 – 2011-05-18 08:47:16

3

将标题置于<thead>,并将行标记为<tbody>,因为它们应该是。这样一个简单的选择器,如tbody:has(tr)>tr由@Amadan给出的工作。

(好的,我并不完全认为选择器通过...)

+0

我真的会这样做。 +1 – BoltClock 2011-05-18 08:49:18