首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何统计过滤后显示的表行数?

问如何统计过滤后显示的表行数?
EN

Stack Overflow用户
提问于 2019-03-09 13:37:27
回答 2查看 1.6K关注 0票数 0

如何统计过滤后显示的表行数?

我试过运行这个脚本,但它显示了总行,而不是当前显示的行:

代码语言:javascript
复制
function CountRows() {
    var rowCount = 0;
    var table = document.getElementById("filter_table");
    var rows = table.getElementsByTagName("tr")
    for (var i = 0; i < rows.length; i++) {
        if (rows[i].getElementsByTagName("td").length > 0) {
            rowCount++;
        }
    }
    var message = "Showing: " + rowCount;
    alert(message);
}

位置:http://kissbandstree.com/count_rows.js

没有错误信息。

这是过滤器脚本:http://kissbandstree.com/multifilter.js

这是测试页面:http://kissbandstree.com/artists2.php

我想要显示应用过滤器后显示的行数。

这是相关的PHP / HTML部分:

代码语言:javascript
复制
<?php
// Fetch all filenames in the kiss_artists directory
$artists = glob('kiss_artists/*.txt');
?>

<table class="standard">
  <tr>
    <td>
        <?php echo"Items in table: " . count($artists) . ". Showing: XXX. Table is sortable. Artists names are links to simple individual pages. Date is when the entry was modified."; ?>
        <input id="clickMe" type="button" value="clickme" onclick="CountRows();">
    </td>
  </tr>
</table>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-09 13:46:07

您只能检查所有可见行的计数。因为通过查看该页面,您隐藏了与筛选器无关的行。

我不得不从总数中减去一个计数,因为标题行也被计算出来了。

此外,由于您在该页面中使用了jQuery,因此这应该是最简单的解决方案

代码语言:javascript
复制
function countRows(){
      let rowCount = $('#filter_table tr:visible').length - 1;
      var message = "Showing: " + rowCount;
      alert(message);
    }
票数 1
EN

Stack Overflow用户

发布于 2019-03-09 13:45:46

通过在循环中添加可见性检查,您应该能够跳过隐藏的行:

代码语言:javascript
复制
for (var i = 0; i < rows.length; i++) {
    if (rows[i].style.display == 'none') continue;
    if (rows[i].getElementsByTagName("td").length > 0) {
        rowCount++;
    }
}
// for the header row
rowCount--;

由于有一个标题行,您需要从计数中减去1。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55074356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档