如果我有这样的表格布局:
<table>
<tr class="one">
<td>
...
</td>
</tr>
<tr class="two">
<td>
...
</td>
</tr>
<tr class="three">
<td>
...
</td>
</tr>
<tr class="four">
<td>
...
</td>
</tr>
</table>
查找第一个显示行的最简单方法是什么?我这样说是因为某些行类可能将“display:none”设置为过滤过程的一部分。
我想:
tr:first-child
可行,但事实证明它不会隐藏行!
答案 0 :(得分:5)
如果您可以使用jQuery
,则只需:
$('tr:visible:first').foo();
如果没有javascript,你就无法做到。
如果速度对你非常重要,那就快一点了:
$('tr').filter(':visible').first().foo();
文档:
因为:visible是jQuery扩展而不是CSS规范的一部分,查询使用:visible无法利用本机DOM querySelectorAll提供的性能提升( ) 方法。要在使用时获得最佳性能:选择元素可见,首先使用纯CSS选择器选择元素,然后使用.filter(“:visible”)。