如何对过滤后的 html 表求和?

2024-01-11

我有一个 HTML 表,我可以使用 jquery 过滤它。在表格的底部,我想要一个“总计”行,它将显示的所有值相加。 “总计”行中显示的总和应该是显示的所有行的总和,即不考虑隐藏行。

我尝试添加一个条件,例如使求和取决于行的显示样式,但这没有成功。 有没有简单的解决方案来实现这个? 就像一个简单的 JavaScript if 条件一样,检查 td 元素所属的行是否隐藏?

EDIT:我的 HTML-Coods 看起来像这样(计算列总数的 JavaScript 函数位于表格后面):

var columnCount = document.getElementById('datatable').rows[2].cells.length;
var tds = document.getElementById('datatable').getElementsByTagName('td');
var sum = 0;

var columnsToSum = [3,4];

for (i=0; i<columnsToSum.length;i++) 
{
    a = columnsToSum[i]; 
    sum=0;
    var hasPercent = false;
    
    for(z = columnsToSum[i]; z < tds.length; z+=columnCount) 
    {
        sum += isNaN(tds[z].innerHTML) ? 0 : parseInt(tds[z].innerHTML); 
    }

    document.getElementById("data"+ a).innerHTML = sum;                             
}
<html>
    <head>
        <meta charset="utf-8"/>
 
         <link rel="stylesheet" href="css2/bootstrap.css" />
         <link rel="stylesheet" href="css2/dataTables.bootstrap.min.css" />
         <link rel="stylesheet" href="css2/responsive.bootstrap.min.css" type="text/css" />
         <link rel="stylesheet" href="css2/buttons.bootstrap.min.css" type="text/css" />
         <link rel="stylesheet" href="style.css" />
      </head>
    <body>
        <div class="container-fluid" style="width:80%;">
            <table id=datatable class="datatable table table-hover">
                <thead>
                    <tr>
                        <th>ID</th>
                        <th>Name</th>
                        <th>Address</th>
                        <th>Class</th>
                        <th>Class</th>
                    </tr>
                </thead>
                <tfoot>
                    <tr>
                        <th>
                            <input type="text" class="form-control input-sm filter-column" placeholder="nach ID filtern"> 
                        </th>
                        <th>
                            <input type="text" class="form-control input-sm filter-column"> 
                        </th>
                        <th>
                            <input type="text" class="form-control input-sm filter-column" />
                        </th>
                        <th>
                            <select class="form-control input-sm filter-column">
                                <option value="A">A</option>
                                <option value="B">B</option>
                                <option value="B">C</option>
                            </select>
                        </th>
                        <th>
                            <select class="form-control input-sm filter-column">
                                <option value="A">A</option>
                                <option value="B">B</option>
                                <option value="B">C</option>
                            </select>
                        </th>
                    </tr>
                </tfoot>
            <tbody> 
                <tr>
                    <td>1</td> 
                    <td>bla</td> 
                    <td>500</td> 
                    <td>100%</td> 
                    <td>300</td> 
                </tr> 
            </tbody>
            <tfoot>
                <tr class="sum-row">
                    <td id=data0></td> 
                    <td id=data1></td> 
                    <td id="data2">0</td> 
                    <td id="data3">0</td>
                    <td id="data4">0</td> 
                </tr> 
            </tfoot>
        </table>   
    </div> 
    <script language="javascript" type="text/javascript">
    
    </script>
    <script src="js2/jquery-1.11.3.min.js"></script>
    <script src="js2/jquery.dataTables.min.js"></script>
    <script src="js2/dataTables.bootstrap.min.js"></script>
    <!-- Responsive extension -->
    <script src="js2/responsive.bootstrap.min.js"></script>
    <!-- Buttons extension -->
    <script src="js2/dataTables.buttons.min.js"></script>
    <script src="js2/buttons.bootstrap.min.js"></script>
    <script src="js2/jszip.min.js"></script>
    <script src="js2/buttons.html5.min.js"></script>

上面的代码始终显示表中所有值的总和,并且不考虑过滤。


我认为这段代码会起作用。

$(document).ready(function () {
    var table = $('#datatable').DataTable();
    calculatesum(table.rows().nodes());
    $('input').on('keyup click', function () {
        var searched = table.rows({
            search: 'applied'
        }).nodes();

        calculatesum(searched);

    });
});

function calculatesum(all) {
    var columnsToSum = [2, 4];
    for (i = 0; i < columnsToSum.length; i++) {
        a = columnsToSum[i];
        sum = 0;
        for (j = 0; j < all.length; j++) {

            var val = all[j].getElementsByTagName('td')[a].innerHTML;
            sum += isNaN(val) ? 0 : parseInt(val);


        }
        document.getElementById("data" + a).innerHTML = sum;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何对过滤后的 html 表求和? 的相关文章

  • 为什么“dtoa.c”包含这么多代码?

    我将是第一个承认我对低级编程的整体知识有点稀疏的人 我理解许多核心概念 但我不经常使用它们 话虽这么说 我对需要多少代码感到非常惊讶dtoa c http www netlib org fp dtoa c 在过去的几个月里 我一直致力于用
  • JSDoc:如何在生成的文档中包含自定义 css 文件模板?

    JS文档docs https jsdoc app about configuring default template html say 将图像目录复制到输出目录 复制全部 将 myproject static 中的静态文件复制到输出目录
  • WebDriver:更改事件未触发

    我有一个使用 KnockoutJS 的应用程序 我正在尝试编写一些测试表单的测试 如果您不了解 KnockoutJS 简单来说 它提供了从我的视图到我的数据模型的绑定 这意味着当我在输入字段中键入值时 我的基础对象会自动使用该输入字段值进行
  • JointJS - 处理链接删除点击

    创建链接后 将鼠标悬停在其上会显示红色 X 以将其删除 单击此按钮将触发一系列事件 通过订阅 全部 活动收集 单元格 向下指针 链接 向下指针 cell pointermove x5 似乎可疑 单元格 指针向上 在浏览了文档并花费了太长时间
  • 如何向尚未添加到页面的元素注册 Javascript 事件处理程序

    我正在尝试构建一个greasemonkey 脚本 它将根据用户与其他动态创建的数据表的交互动态创建数据表 我的问题是 每次创建表时 我都必须进行两次传递 一次用于创建表 另一次用于获取表中我想要添加事件处理程序的所有对象 通过 id 并添加
  • NodeJS 无法加载 css 文件

    所以我正在尝试制作一个 NodeJS 服务器 并且我尝试保留尽可能少的附加组件 但是 我遇到了一个问题 我似乎无法加载任何内容CSS我调用的文件HTML文件 该调用似乎确实由服务器处理 但它不会显示在浏览器中 My 网络服务器 js fil
  • Relay 中的嵌套片段数据始终相同

    我是 Relay 新手 并且遇到了片段上嵌套数据的问题 当我在 graphiql 中进行测试时 以下查询返回正确的数据 因此我确信我的架构是正确的 viewer customers name billing address city 但是
  • django ajax post 403被禁止

    使用 django 1 4 当我尝试从我的 javascript 做我的 django 服务器上的帖子时 我收到 403 错误 我的 get 工作正常 尽管问题仅出在帖子上 也尝试过 csrf exempt但没有运气 更新 我现在可以发布我
  • 禁用任何类型的浏览器窗口滚动?

    有没有办法禁用滚动 不仅仅是滚动条 还有浏览器窗口的全部功能 根据您对 Keit 的回答 您不想在打开灯箱时滚动处于活动状态 如果是这种情况 您可以使用以下 css 在打开灯箱的同时向正文添加一个类 这个解决方案的好处是它保留了滚动 空间
  • 在IOS中,引导模式中的iframe无法滚动

    我在引导程序模态体内有一个 iframe div class modal fade div class modal dialog div class modal content div class modal header div div
  • Web浏览器控件:如何捕获文档事件?

    我正在使用 WPF 的 WebBrowser 控件加载一个简单的网页 在这个页面上我有一个锚点或一个按钮 我想在我的应用程序后面的代码中 即在 C 中 捕获该按钮的单击事件 WebBrowser 控件是否有办法捕获加载页面元素上的单击事件
  • 全局定义的 AngularJS 控制器和封装

    根据 AngularJS 的教程 控制器函数仅位于全局范围内 http docs angularjs org tutorial step 04 http docs angularjs org tutorial step 04 控制器函数本身
  • 在外部单击时关闭弹出 div

    我有一个弹出 div 仅在单击特定按钮时显示 单击同一按钮时它甚至会隐藏 我的问题是 我还想在单击外部任何地方时隐藏 div 我无法这样做 因为弹出 div 位于主包装类内部 并且无法通过在包装类上使用 click 事件并使其隐藏来做到这一
  • chrome 扩展 - 将数据从后台传递到自定义 html 页面

    创建浏览器扩展 我必须从 background js 打开新选项卡并将 JSON 数据传递到这个新选项卡 在新选项卡中 我使用传递的 JSON 数据来操作 渲染 DOM 下面是我的 background js 的一部分 我在其中使用自定义
  • IE6 丢失查询字符串

    我有一个使用 javascript 从查询字符串中获取值的页面window location 从网络服务器运行时效果很好 但如果我通过将其放在地址栏中使用 IE6 在本地运行它 c mysite index htm 网站创建的任何查询字符串
  • 在 中动态添加链接样式表 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 如何将链接
  • 如何在 jQuery 中检查复选框是否被选中?

    我需要检查checked复选框的属性 并使用 jQuery 根据选中的属性执行操作 例如 如果age复选框被选中 然后我需要显示一个文本框来输入age 否则隐藏文本框 但下面的代码返回false默认情况下 if isAgeSelected
  • 如何仅在第一次访问时弹出模态窗口

    我有一个模式窗口 当您访问某个页面时会弹出 访客必须选择我同意或我不同意 我需要一个漂亮的小 jquery 脚本 它会记住谁之前访问过该页面并同意 这样他们每次访问该页面时就不会弹出模式 有人可以推荐一个好的脚本来使用吗 这是代码 div
  • 使用 stopPropagation() 处理 React 事件委托

    我有一个 React 项目 应该可以放置在任何网站上 我的想法是 我托管一个 javascript 文件 人们放置一个具有特定 ID 的 div 然后 React 在该 div 中进行渲染 到目前为止 除了点击事件之外 这是有效的 这些事件
  • Angular 5 中 Observable.ForkJoin 的重复 Http 请求

    我有一个 Angular 5 应用程序 组件中包含以下代码 ngOnInit Observable forkJoin this highlightedInsight this insightService getHighlightedIns

随机推荐

  • VS 2010,编码的 UI 测试:重新运行失败的测试用例

    我正在使用 VS2010 Premium 编码 UI 测试 您知道如何在运行后重新执行失败的测试用例吗 如果重新执行后测试通过 则应在结果报告中记录通过 不是最佳方式 但您可以将所有代码放入try catch如果抛出异常 则阻止并重新运行测
  • 当用户离开页面时,如何检测表单中未保存的数据?

    当用户离开页面而不提交表单时 我需要检测表单中未保存的数据 我想实现这一点 而不为每个输入添加值更改侦听器 这是功能要求 如果页面中的值发生更改 用户打开页面而不是单击任何链接 则会弹出警报消息 通知用户他需要保存更改的数据 但如果没有更改
  • 无法从 Strapi API 获取数据到 next.js 前端

    我尝试过 Strapi 和 next js 来制作博客网站 这是前端代码的 next js import Head from next head import styles from styles Home module css expor
  • 纯javascript:为可拖动元素设置边框

    再会 学习 Javascript 并尝试在容器内制作可拖动的元素 如何设置可拖动边框以使元素无法移动到其之外 现在 当您将某些内容拖动到底部或右边框时 我遇到一个问题 该元素会移到容器之外 fiddle https jsfiddle net
  • 22秒是在mysql中插入500行的好时间吗?

    以下 php 脚本的执行时间约为 22 秒 正常吗 如果不是的话 什么会导致它执行缓慢 conn mysql connect localhost root 123 mysql select db mydb conn time1 time f
  • Google Cloud HTTP 平衡器和 gzip

    当我使用 Google Cloud Network Load Balancer 时 所有 HTTP gzip 连接都保持不变 但是当使用 HTTP S 负载均衡器时 最终用户无法获得 gzip 压缩的内容 我在虚拟机上使用 nginx 使用
  • 读取 XML 文档时如何使用 XComment?

    我正在使用以下行读取 XML 文档 该文档可能有也可能没有一些用 括起来的注释 靠近我的 XML 文件的顶部 XDocument xe1 XDocument Load filepath 如何读取评论并将其存储为字符串 我正在 MS Visu
  • 调试前运行批处理脚本

    我想每次在启动程序进行调试之前运行批处理脚本 对于构建事件 此类功能是使用预构建事件 构建后事件来实现的 对于实际调试 我找不到任何预调试 调试后事件 如何实现这个场景呢 我正在使用 VS2008 net Framework 3 5 C 应
  • Bootstrap 4:隐藏卡片文本中的溢出

    我有一张 bootstrap 4 卡 我想在其中隐藏字幕的溢出 并显示 我怎样才能实现这个目标 如果可能的话使用纯引导代码 div class card block p 1 p class card title Test object p
  • 解释 R Taply 描述

    我理解tapply 在R中的作用 但是 我无法从文档中解析它的描述 Apply a Function Over a Ragged Array Description Apply a function to each cell of a ra
  • 为什么括号中的字符串不只用该字符串创建一个元组? [复制]

    这个问题在这里已经有答案了 我在使用 Python 线程和在参数中发送字符串时遇到问题 def processLine line print hello return dRecieved connFile readline processT
  • bootstrap 导航栏可折叠无法使其工作

    我正在开发一个 Angularjs 应用程序 我想使其成为多平台 因此我正在尝试使用 Bootsrap 我找到了一个我想要遵循的模板 https blackrockdigital github io startbootstrap busin
  • Windows XP 上的 XamlParseException

    我有一个 WPF 应用程序 它在 vista 7 上运行得很好 但在 Windows XP 上它会抛出 System Windows Markup XamlParse 错误 这非常令人沮丧 因为我的应用程序中有很多控件 但我不这样做不知道是
  • 线程安全的多文件写入

    我有一个守护进程 它接受套接字连接并读取或写入一组动态文件 具体取决于连接的性质 因为我的守护进程是多线程的 所以存在同一个文件可能被多个线程写入的可能性 因为我的文件列表是动态的而不是固定的 所以我不确定如何防止一个线程碰撞另一个线程 出
  • 在多个 return 语句的情况下,使用 `std::move` 返回是否明智?

    我知道返回通常不是一个好主意std move i e bigObject foo bigObject result return std move result 而不是简单地 bigObject foo bigObject result r
  • 列数与计数器列性能

    我想知道获取特定列族中的列数的最佳方法是什么 我可以直接获取列数 但我不确定这是否是有效的解决方案 另一方面 我可以维护另一个列族 其中包含一个包含列数的计数器列 您有遇到类似问题的经验吗 http wiki apache org cass
  • Fortran函数解释

    我在 Fortran 中有这个函数 我正在尝试用 C 重新编码它 C C FUNCTION POLY C FUNCTION POLY N A X DIMENSION A N C POLY 0 L N DO 1 K 1 N POLY POLY
  • java.util.MissingResourceException:找不到基本名称消息的包,区域设置 en_US

    我是 JSF 的新手 正在尝试这段代码 这是我的 faces config xml
  • 如何动态更新Nifi中的variable.registry.properties?

    变量注册表属性是 Nifi 添加的一项功能 旨在促进软件开发生命周期 这意味着您可以在单独的开发环境中开发流程 并利用 nifi variable registry properties 属性中指定的自定义属性文件以及表达式语言来使用处理器
  • 如何对过滤后的 html 表求和?

    我有一个 HTML 表 我可以使用 jquery 过滤它 在表格的底部 我想要一个 总计 行 它将显示的所有值相加 总计 行中显示的总和应该是显示的所有行的总和 即不考虑隐藏行 我尝试添加一个条件 例如使求和取决于行的显示样式 但这没有成功