我正在尝试在求和循环中编写一个方程式,并且通过使用加号+
一切都可以正常工作,我假设这会使混淆和循环的增量。该方程的值应为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>