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

如何在jQuery中计算$('.shipping').val()与$('#pay').text()的总和并写入指定元素?

实现运费与商品总价的合计计算

需求说明:获取.shipping的取值与#pay的文本内容,将二者相加后,把计算结果写入到<span class='amount'></span>元素中。

以下是修改后的完整jQuery脚本,已添加合计计算逻辑:

<script> 
$(document).ready(function() {
  $("select.area").change(function() {
    var zone = $(this).children("option:selected").val();
    var area = $(this).children("option:selected").text();
    $('.shipping').val(zone);
    $('.address').val(area);
    // 地址变更后更新合计
    updateTotalAmount();
  });
});

function updateTotalPrice() {
  var qty = parseInt($('#qty').val(), 10);
  var price = parseFloat($('#price').attr('value'));
  var total = qty * price;
  $('#pay').text(total.toFixed(3));
  // 修正原代码错误:数量输入框需用val()设置值
  $('#qty').val(qty);
  // 商品总价更新后同步更新合计
  updateTotalAmount();
}

// 新增合计计算函数
function updateTotalAmount() {
  // 解析运费,非数值时默认取0避免NaN
  var shipping = parseFloat($('.shipping').val()) || 0;
  // 解析商品总价,非数值时默认取0避免NaN
  var payTotal = parseFloat($('#pay').text()) || 0;
  // 计算合计并保留3位小数
  var totalAmount = shipping + payTotal;
  // 将结果写入目标元素
  $('.amount').text(totalAmount.toFixed(3));
}

$(document).ready(function() {
  // 绑定数量增减按钮事件
  $('#plus-btn').click(function(event) {
    increaseCount(event, this);
  });
  $('#minus-btn').click(function(event) {
    decreaseCount(event, this);
  });
  $('#qty').change(function(event) {
    updateTotalPrice();
  });

  // 页面加载时初始化商品总价与合计
  updateTotalPrice();
  updateTotalAmount();
});
</script>

关键改动说明:

  • 新增updateTotalAmount()函数:负责处理数值解析、合计计算与结果写入,同时兼容非数值输入的情况(默认设为0)。
  • 在地址选择变更事件中调用合计函数:确保运费变化时合计实时更新。
  • 在商品总价更新函数末尾调用合计函数:商品总价变动时同步更新合计。
  • 修正原脚本错误:原代码中用$('#qty').text(total)设置数量输入框值是错误的,改为val()方法符合输入框的操作逻辑。
  • 页面加载时额外初始化合计:确保页面打开时就能显示正确的合计值。

内容的提问来源于stack exchange,提问作者Handy Eko Cahyono

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 03:32:54