【问题标题】:Getting NaN while calculating Total在计算 Total 时获取 NaN
【发布时间】:2017-12-26 10:30:24
【问题描述】:

我正在尝试用数量计算产品价格,然后显示总数,但是当我计算时,我得到的结果为 NaN

这里是代码

$('button').click(function() {
   var total = 0;

   $('#mineraltable tbody tr').each(function(index) {

      var price = parseInt($(this).find('.price').text());
      var quantity = parseInt($(this).find('.quantity input').val());
      var value = $(this).find('.value');
      var subTotal = price * quantity;

      value.text(subTotal);
      total = total + subTotal;
   });

   $('#result').text('Your value is: '+ total);
      console.log(total);
   });

你的值是:NaN

【问题讨论】:

  • 这意味着您尝试解析为整数的任何值都不能解析为整数。我们不知道您要解析哪些值...
  • @AnkitAgarwal 如果parseInt() 返回NaN,使用parseFloat() 会有什么不同?
  • @AnkitAgarwal 不,结果不一样。
  • @A.Wolff 这些值来自数据库 $row[price]
  • 所以现在我们仍然不知道$row[price] 值是什么...

标签: jquery product invoice calculated-field


【解决方案1】:

如果您不确定这些字段中可能存在的数据,可以使用IsNaN() 并检查文本是否为数字。

$('button').click(function() {
                  var total = 0;

                  $('#mineraltable tbody tr').each(function(index) {
                  var price = 0 , quantity = 0;

                  price = parseInt($(this).find('.price').text());
                  quantity = parseInt($(this).find('.quantity input').val());

                 //check for NaN
                  price = isNaN(price) ? 0 : price;
                  quantity = isNaN(quantity) ? 0 : quantity;

                  var value = $(this).find('.value');
                  var subTotal = price * quantity;

                  value.text(subTotal);
                  total = total + subTotal;
                });

                $('#result').text('Your value is: '+ total);
                console.log(total);

                });

【讨论】:

    【解决方案2】:

    请检查您的值,您可能在 parseInt 函数中传递了任何非数值。

    【讨论】:

      猜你喜欢
      • 2014-03-29
      • 2023-02-04
      • 2014-11-15
      • 1970-01-01
      • 2011-05-31
      • 2015-06-25
      • 2014-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多