【发布时间】:2015-09-27 04:59:40
【问题描述】:
是否有任何选择器为每列仅选择第一个非空单元格,即下面代码示例中包含 2、3 和 4 的单元格?
<table>
<tbody>
<tr>
<td></td>
<td><span class='a'>2</span></td>
<td><span class='a'>3</span></td>
</tr>
<tr>
<td><span class='a'>4</span></td>
<td><span class='a'>5</span></td>
<td><span class='a'>6</span></td>
</tr>
</tbody>
</table>
我当前的解决方案有多个具有固定列号的选择器,这对于包含许多列的表并不理想。
$('table tr td:nth-child(1) .a').first()
$('table tr td:nth-child(2) .a').first()
$('table tr td:nth-child(3) .a').first()
【问题讨论】:
-
不确定我是否理解你的问题。我回答得太早了。您想选择该行的第一个子元素且不为空的元素吗?
-
第一个不为空的应该是2和4,为什么是3?
-
我会尝试不同的配方;如果列从左到右,行从上到下,我想从每一列中只选择一个单元格,如果像示例中那样有多行,我想选择最靠近顶行的一个,即不应选择 5 和 6,因为它们“低于”2 和 3
-
纯 CSS 无法做到这一点,因为没有父选择器。你必须使用 JS。
-
我明白了,你想在每一列中选择第一个非空元素,但我认为纯 CSS 不可能,因为这些元素不属于同一个父级(兄弟姐妹)。
标签: jquery css css-selectors