我正在尝试在求和循环中编写一个方程式,并且通过使用加号+一切都可以正常工作,我假设这会使混淆和循环的增量。该方程的值应为56,但实际输出为095959595的字符串。

JFIDDLE

代码如下:

$(function () {
    var feature = $('.product');
    var supplier = $('#supplier').val();

    var costCurve = $('#productCostCurve').val();
    var baseCost = $('#baseComponentCost').val();

    var unitCost = 0;

    $.each(feature, function () {
        unitCost += (costCurve * parseFloat($(this).val()) * baseCost * supplier) + baseCost;
    });

    $('#product-cost').html(unitCost);
});

最佳答案

问题是baseCost,它是一个字符串值,因此完成了字符串连接



$(function() {
  var feature = $('.product');
  var supplier = $('#supplier').val();

  var costCurve = $('#productCostCurve').val();
    //use a unary plus or parseFloat to convert this to a numeric value
  var baseCost = +$('#baseComponentCost').val();

  var unitCost = 0;

  $.each(feature, function() {
    unitCost += (costCurve * parseFloat($(this).val()) * baseCost * supplier) + baseCost;
  });

  $('#product-cost').html(unitCost);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text" id="productCostCurve" value="0.5" />
<input type="text" id="baseComponentCost" value="5" />
<input type="text" class="product" value="4" />
<input type="text" class="product" value="4" />
<input type="text" class="product" value="4" />
<input type="text" class="product" value="4" />
<input type="text" id="supplier" value="0.9" />
<div id="product-cost"></div>

09-17 19:08