我一直在尝试...大约4个小时了,lmao。

currentCalc返回50
当我警告他们时currentSum返回0。但是我不能将它们与parseInt一起添加?

我究竟做错了什么 :'(

var identRow = $('tr.identRow');
identRow.each(function () {
    var getIdentClass = $(this).attr('class').split(' ').slice(1);
    $('tr.ohp' + getIdentClass + ' td.EURm').each(function (index) {
        var currentCalc = parseInt($(this).text().replace('.', ''), 10);
        var currentSum = $('tr.' + getIdentClass + ' td.totalEURm', this).text().replace('.', '');
        total = parseInt(currentCalc, 10) + parseInt(currentSum, 10);
        $('tr.' + getIdentClass + ' td.totalEURm').text(total);
        if (index == 6) {
            alert(total);
        }
    });
});

编辑:

我的天啊。我现在完全困惑了。我把休息时间放在那里。总计= 50。

我希望每次迭代都将自身添加到总数中。这就是为什么我将currentCalc添加到将currentCalc放入其中的字段文本中的原因。
$('tr.' + getIdentClass + ' td.totalEURm').text(total);

现在我的代码是这样的:
    var identRow = $('tr.identRow');
    identRow.each(function () {
      var getIdentClass = $(this).attr('class').split(' ').slice(1);
      $('tr.ohp' + getIdentClass + ' td.EURm').each(
        function (index) {
          var currentCalc = parseInt($(this).text().replace('.', ''), 10) || 0;
          var currentSum  = parseInt($('tr.' + getIdentClass + ' td.totalEURm', this).text().replace('.', ''), 10) || 0;
          var total = currentCalc + currentSum;
          $('tr.' + getIdentClass + ' td.totalEURm').text(total);
          if (index === 6) {
            alert(total);
          }
        });
    });

它会发出警报:50,然后是0,然后是50,然后是0。

编辑:

如何将currentCalc添加到其最后一个值?

因此,第一次迭代为10,秒为20。我如何在第二次迭代中使它等于30。currentCalc++只是将其加1。

现在,您了解我的意思了:)

最佳答案

我不是JS方面的专家,但是我看到currentCalc已经是一个int了:

var currentCalc = parseInt($(this).text().replace('.',''), 10);
//...
total = parseInt(currentCalc, 10) + parseInt(currentSum, 10);

所以很可能在一个int上的parseInt而不是在一个字符串上失败(?)

07-24 15:43