用Javascript计算 - 求和的第一个时间是NaN

时间:2016-01-14 14:13:57

标签: javascript jquery

我有点困惑。我有一些代码,如果我将产品放入购物车,我正在计算价格总和。

这是我的代码:

PHP

我第一次得到NaN。 Var cart_sum = NaN。 当我重新加载页面时,计算是正确的,我得到了product_prices的正确总和。

但为什么???

我记录了全部。这3个变量的类型是“数字”。那我为什么要拿到NaN?

每个都有问题吗?如果那里只有一种产品?

希望我能在这里得到一些答案..

2 个答案:

答案 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;
&#13;
&#13;

答案 1 :(得分:0)

首先,不要重复使用parseInt。 问题可能在于您获得价值的方式。 val()仅返回selecttextareainput的值。您可以使用text()从html标记中获取值。 在你的情况下val()返回你要转换为int的空字符串,那里就是你得到NaN的地方。 刷新后不确定代码的原因。