使用Jquery在项目开发过程中遇到的问题汇总--Tabs合并金额(一)

1.第一个问题可先由下图引出:

使用Jquery在项目开发过程中遇到的问题汇总--Tabs合并金额(一)_第1张图片

需求是要将表格中保单价格进行相加,是一个比较简单的需求,但是在开发的过程中遇到了以下的问题,作个笔记,以示警醒。

条件:合并开票的id为“combineButtons”,以下展示代码为保单价格相加的代码。

Invoice.SumTabsPrice = function (index) {
    var container = $("#tabContent" + index);
    var checkedRecords = $("input[name='invMergeCheck']:checked", container);
    var combineSum = 0;
    var sumStr = '';
    if (checkedRecords.length) {
      checkedRecords.each(function (i, item) {
        combineSum += Number($(item).attr('pricetag'));
      })
    }
    sumStr =$('#combineButton').text()+ '(' + combineSum + ')';//拿到拼接后的合并开票的内容
    $('#combineButton').text(sumStr); //将合并开票和金额进行拼接
  };

这是一开始写的一段代码是有问题的,原因是在每个tabs进行合并计算的时候,合并开票都会被拼接一次,这样一来就会出现“合并开票(xx)(xx)”的情况出现。修改后的代码

Invoice.SumTabsPrice = function (index) {
    var container = $("#tabContent" + index);
    var checkedRecords = $("input[name='invMergeCheck']:checked", container);
    var combineSum = 0;
    var sumStr = '';
    if (checkedRecords.length) {
      checkedRecords.each(function (i, item) {
        combineSum += Number($(item).attr('pricetag'));
      })
    }
    sumStr = '合并开票' + '(' + combineSum + ')';
    $('#combineButton').text(sumStr); //将合并开票和金额进行拼接
  };
修改后的代码里将合并开票写死,直接拼计算后的数值,就不会出现上述情况。

你可能感兴趣的:(使用Jquery在项目开发过程中遇到的问题汇总--Tabs合并金额(一))