我有点困惑。我有一些代码,如果我将产品放入购物车,我正在计算价格总和。
这是我的代码:
PHP
我第一次得到NaN。 Var cart_sum = NaN。 当我重新加载页面时,计算是正确的,我得到了product_prices的正确总和。
但为什么???
我记录了全部。这3个变量的类型是“数字”。那我为什么要拿到NaN?
每个都有问题吗?如果那里只有一种产品?
希望我能在这里得到一些答案..
答案 0 :(得分:0)
似乎工作正常。请参阅下面的代码。
function ware_cart_sum() {
var cart_sum = parseInt(0);
if ($('.in_cart_products tr').length) {
$('.in_cart_products tr').each(function() {
var value = parseInt($(this).find(".product_count_incart").val());
var price = parseInt($(this).find(".td_price span").text());
cart_sum += (value * price);
});
}
console.log(cart_sum);
$('#sum').text(cart_sum);
return cart_sum;
}

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class="in_cart_products">
<tr>
<td>
<input class="product_count_incart" value="1">
<span class='td_price'> <span>100</span> </span>
</td>
</tr>
<tr>
<td>
<input class="product_count_incart" value="2">
<span class='td_price'> <span>50</span> </span>
</td>
</tr>
</table>
<div>total: <span id="sum">0</span><div>
<button onclick="ware_cart_sum()">Calculate</button>
</body>
</html>
&#13;
答案 1 :(得分:0)
首先,不要重复使用parseInt。
问题可能在于您获得价值的方式。 val()仅返回select
,textarea
和input
的值。您可以使用text()
从html标记中获取值。
在你的情况下val()
返回你要转换为int的空字符串,那里就是你得到NaN的地方。
刷新后不确定代码的原因。