You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用jQuery计算表格中所有行的数字总和?

实现表格数字总和计算的修正方案

当前代码可点击按钮添加字母和数字行,但无法正确计算表格内所有数字的总和,以下是修正后的实现方案:

原代码存在的问题

  • 表格行追加时HTML标签未闭合(<tr>和第二个<td>均未写闭合标签),会导致DOM结构异常
  • 总和计算逻辑错误:parseInt($("td.table-number").html())仅能获取第一个.table-number元素的值,且+=的写法不符合赋值逻辑,无法实现所有数字的累加

修正后的完整代码

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("button#add").click(function(){
    // 修复HTML标签闭合问题,正确追加完整表格行
    $("table#content-table").append('<tr><td class="table-letter">' + $("#letter").val() + '</td><td class="table-number">' + $("#number").val() + '</td></tr>');
    
    // 计算所有数字的总和
    let total = 0;
    $(".table-number").each(function(){
      // 处理空值或非数字情况,默认取0
      total += parseInt($(this).text() || 0);
    });
    // 更新总和显示
    $("td.table-total").text(total);

    // 清空输入框,提升用户体验
    $("#letter").val('');
    $("#number").val('');
  });

  // 页面加载时先计算初始总和
  let initialTotal = 0;
  $(".table-number").each(function(){
    initialTotal += parseInt($(this).text() || 0);
  });
  $("td.table-total").text(initialTotal);
});
</script>
</head>
<body>

<table id="content-table">
 <tr>
  <th>Letter</th>
  <th>Number</th>
 </tr>
 <tr>
  <td class="table-letter">A</td>
  <td class="table-number">5</td>
 </tr>
</table>
<table>
 <tr>
  <td>Total</td>
  <td class="table-total"></td>
 </tr>
</table>

<form action="javascript:void(0);">
 <input id="letter" name="letter" placeholder="Enter letter" required />
 <input type="number" id="number" name="number" placeholder="Enter number" required />
 <button id="add">ADD</button>
</form>

</body>
</html>

关键改动说明

  • 修复DOM结构:追加表格行时补全<td>和<tr>的闭合标签,确保DOM结构正确
  • 正确的总和计算逻辑:使用.each()遍历所有.table-number元素,逐个累加数值,同时处理可能的空值或非数字场景
  • 初始化总和:页面加载完成后自动计算初始表格的数字总和,避免初始状态下总和为空
  • 优化用户体验:添加输入框清空逻辑,方便连续添加数据

内容的提问来源于stack exchange,提问作者user21427607

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 09:15:24