我有这个脚本:
var foo=0;
$('#container .field').each(function(){
var item = $(this);
foo += parseInt(item.val());
})
console.log(foo);
但每次,当我记录tot变量时,它会显示NaN。 .field类被赋予输入字段。
任何人都可以帮助我吗?
答案 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 ;