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?
To get the row count of an HTML table with JavaScript, we can use the rows. length property to get the total number of rows in the table. And to get the number of rows in tbody , we can use the tBodies[0]. rows.
To count all HTML elements, we use length property. The length property is used to count number of the elements of the jQuery object. where selector is the object whose length is to be calculated.
You could also have table > thead > tr and then table > tbody > tr. So you might need to specify whether you want the first row from the thead or the tbody. find('tr:first') will select the tr in the thead.
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;
$('tr:visible').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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With