I've got this html:
<table>
<tr style="display:table-row"><td>blah</td></tr>
<tr style="display:none"><td>blah</td></tr>
<tr style="display:none"><td>blah</td></tr>
<tr style="display:table-row"><td>blah</td></tr>
<tr style="display:table-row"><td>blah</td></tr>
</table>
I need to count the number of rows that don't have display:none
. How can I do that?
You can use the :visible
selector and .length
like this:
var numOfVisibleRows = $('tr:visible').length;
If the <table>
itself isn't visible on the screen (:visible
returns false if any parent is hidden, the element doesn't have to be hidden directly), then use .filter()
, like this:
var numOfVisibleRows = $('tr').filter(function() {
return $(this).css('display') !== 'none';
}).length;
You can also view particular table visible rows
var totalRow = $('#tableID tr:visible').length;
var totalRowWithoutHeader = totalRow-1;
The totalRowWithoutHeader gives the total row count excluding header row.
$("tr:visible") gets you the results of the visible rows, and I think you can then do .length