在CSS中查找第一个可见的表行

时间:2012-07-03 00:13:09

标签: jquery css jquery-selectors css-selectors

如果我有这样的表格布局:

<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

可行,但事实证明它不会隐藏行!

1 个答案:

答案 0 :(得分:5)

如果您可以使用jQuery,则只需:

$('tr:visible:first').foo();

如果没有javascript,你就无法做到。

如果速度对你非常重要,那就快一点了:

$('tr').filter(':visible').first().foo();

文档:

  

因为:visible是jQuery扩展而不是CSS规范的一部分,查询使用:visible无法利用本机DOM querySelectorAll提供的性能提升( ) 方法。要在使用时获得最佳性能:选择元素可见,首先使用纯CSS选择器选择元素,然后使用.filter(“:visible”)。