【问题标题】:getting NaN error when getting data from a table column从表列获取数据时出现 NaN 错误
【发布时间】:2015-08-28 00:24:05
【问题描述】:

运行此代码时出现 NaN 错误。我在表格中有一个单元格,我从中获取数据。

我正在尝试将列中的值相加。现在表格有两行,第一行有 28.55,第二行有 30.00。

当第一个警报显示为 28.55 时,第二个警报显示为 30.0。当第三个警报显示总和为 NaN 时。如何进行转换以便正确求和?提前致谢。

function changeBalance() {

var sum = 0;

$("td.pmt").each(function() {
payment = $(this);
alert(payment.html());

sum += parseFloat(payment.val());


});      
alert(sum);
document.getElementById("total").innerHTML = sum;   

}

【问题讨论】:

  • @Phil 所以基本上,sum += parseFloat(payment.html()) 代替。不过,为什么会有这么多反对票?
  • @gengkev 我可能会选择.text() 而不是.html(),只是为了安全起见。我不知道为什么这么多反对票,也许是缺乏研究努力?
  • @ja11946 问题是您正试图对不是数字的事物进行数学运算。您需要先将其转换/转换为数字,例如genkev 展示了什么
  • @CrayonViolent OP 已经将其投射为一个数字。只是.val()会为非表单控制元素返回一个空字符串

标签: javascript jquery


【解决方案1】:

它的发生是因为应该有字符串值并且您尝试使用整数变量添加。

这就是为什么它会返回 NaN(Not a Number)

在添加之前尝试一下

if(!isNaN(payment.val()) && payment.val()!='')
 {
    sum += parseFloat(payment.val());
 }

希望对你有所帮助....['}

【讨论】:

    猜你喜欢
    • 2021-07-02
    • 1970-01-01
    • 2017-05-07
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2019-03-08
    • 2022-09-24
    相关资源
    最近更新 更多