如何获取没有此样式属性的所有tbody > tr
:display: none
?
答案 0 :(得分:18)
$("tbody > tr:visible")
应该使用:visible
选择器。
答案 1 :(得分:17)
接受的答案是有效的,并且非常有用,但技术上并不是OP直接询问的内容。
我确实分裂了头发,但是我只需要在tr
属性中找到display: none
字面上不包含style
的元素,因为父元素可能是隐藏,因此没有返回元素。
所以我写了以下内容:
var $trWithoutDisplayNone = $('tbody > tr:not([style*="display: none"])');
更新
原始代码将在页面上选择所有 tr
的数组,其中没有包含"display: none"
的样式属性。
一种更有效,更具体的方法是以表格为目标。
HTML:
<table id="tableID">
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr style="background: grey; display: none;">
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
</tr>
<tr>
<td>9</td>
<td>10</td>
<td>11</td>
<td>12</td>
</tr>
</table>
的JavaScript / jQuery的:
<script>
function getDisplayedRows($targetTable) {
return $targetTable.find('tr:not([style*="display: none"])');
}
var $table = $("#tableID"),
$visibleRows = getDisplayedRows($table);
</script>