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

JavaScript实现HTML表格行乘积与列汇总总和为0问题排查

问题原因
  • 选择器逻辑错误:原代码$("#quantum tr > tbody td:nth-child(3)")层级写反,无法匹配到任何元素,遍历逻辑完全没有执行,总和始终为初始值0
  • 取值逻辑错误:行乘积结果存储在total_price类的输入框value属性中,原代码尝试读取td的文本内容,永远无法拿到有效数值
  • 列索引错误:即使选择器逻辑正确,第3个td是乘数输入列,存储乘积结果的是第4个td内的输入框,索引匹配完全错误
修复方案

直接替换原JS函数即可,修复后逻辑更清晰,避免复杂层级选择器带来的匹配错误:

function add_to_total(el) {
  var parent = $(el).closest('tr');
  var price = parent.find('.price').val() == "" ? 1 : parent.find('.price').val();
  var qty = parent.find('.qty').val() == "" ? 1 : parent.find('.qty').val();
  var total = (price * qty).toFixed(2);
  parent.find('.total_price').val(total);

  var gtot = 0;
  // 直接遍历所有行的乘积输入框取值,逻辑简单不易出错
  $("#quantum tbody .total_price").each((_, input) => {
    gtot += Number($(input).val()) || 0;
  });
  // 汇总结果保留两位小数,和行乘积格式统一
  $("#sum1").text(gtot.toFixed(2));
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 21:27:01