在添加数字后继续获取NaN - jQuery

时间:2011-07-27 16:17:02

标签: jquery nan

我有这个脚本:

var foo=0;

$('#container .field').each(function(){
     var item = $(this);
     foo += parseInt(item.val());
})

console.log(foo);

但每次,当我记录tot变量时,它会显示NaN。 .field类被赋予输入字段。

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:6)

如果您的某个字段中的值无法解析为整数,则会发生这种情况。

有关解决方案,请参阅here

// Note: add 10 as the radix parameter to indicate you want
// base-10 integers.
foo += parseInt(item.val(), 10) || 0;

这将有效地跳过无法解析的值。

答案 1 :(得分:0)

我遇到了这个问题,但我也没有事先将foo设置为0,因为它是动态创建的,我通过使用Dan的解决方案解决了这个问题,但也把foo放在了foo上:

foo = (foo || 0) + (parseInt(item.val()) || 0)

答案 2 :(得分:0)

在Javascript控制台中:

  • NaN || 0 - > 0

  • undefined || 0 - > 0

因此,如果您要添加的数字可以执行以下操作:

var foo=2;
foo+=NaN || 0 + 2;

或在你的情况下:

foo += parseInt(item.val()) || 0 ;