Jquery不断返回NaN

Jquery不断返回NaN,jquery,Jquery,我有一个不断返回NaN的函数。我搜索了论坛,尝试了我找到的所有东西,但很明显,看到我(可能)奇怪的代码,我做错了什么:) 我的代码: function bakVormTotals(targetClass){ $.getJSON('http://shop.com/cart/?format=json', function(data){ var totaal = 0; $('.grandTotal').each(function(){ //////////// var item =

我有一个不断返回NaN的函数。我搜索了论坛,尝试了我找到的所有东西,但很明显,看到我(可能)奇怪的代码,我做错了什么:)

我的代码:

  function bakVormTotals(targetClass){
  $.getJSON('http://shop.com/cart/?format=json', function(data){
  var totaal = 0;

 $('.grandTotal').each(function(){ ////////////
 var item = $(this);               // FOUND THIS ON FORUM
 totaal+= parseInt(item.val());    ///////////
 })
 $.each(data.cart.totals, function(index, totals){
 $('<strong/>').html('€' + (+totals.grand_total).toFixed(2)).appendTo(targetClass); //  the grand total price
 });
 });
 }
现在脚本返回: 欧元未定义欧元未定义欧元未定义欧元未定义欧元未定义欧元未定义欧元未定义欧元未定义欧元未定义欧元1197.00欧元

显然,我的方向是正确的,因为1197.00欧元是正确的价值。“未定义”的内容可能是由于html部分造成的??有人能帮我把$('')部分改成“total”这样我就可以省去HTML部分了吗

$('.grandTotal').each(function(){
  var item = $(this);               // FOUND THIS ON FORUM
  totaal+= parseInt(item.val()); 
  ...

在本部分中,您将遍历一组DOM元素。根据这些元素的不同,它们可能没有函数
val()
,因此
item.val()
不是一个数字,而是
undefined
,我认为lucuma是对的,如果对空字符串或未定义变量调用
parseInt()
,则需要通过parseFloat($item.val())

来解析浮点,您将得到一个
NaN
错误。我怀疑这就是正在发生的事情

执行以下检查以避免这些情况:


另外,为了确保您知道,使用
parseInt()
将删除小数点。使用
parseFloat()
将保留它们。

console.log(item.val())并查看有什么值。PS:有时候理解从“论坛”复制粘贴的内容是有意义的,原因是item.val()不是数字。哟,做这个:;isNan如果不是数字,请检查发生了什么,或者粘贴您的HTML,我可能会为您制作一个演示!希望这能给你足够的线索!你从哪儿弄来的NaN?是在您要添加的
€NaN
处吗?或者它是
totaal
的值吗?@Tats\u innit:尝试此操作并返回:false,false,false,true,true我认为
totaal
可能也是拼写错误造成的。这只是荷兰语中的“total”。)啊,好的。但它似乎没有被使用任何东西。@asawyer:也许这是真的。你有没有建议如何解决这个问题,或者在这种情况下有什么更好的建议?class.grandTotal的HTML元素是什么样子的?尝试了这个,它什么也没有返回。空白字段。哦,很抱歉,它返回了欧元
$('.grandTotal').each(function(){
  var item = $(this);               // FOUND THIS ON FORUM
  totaal+= parseInt(item.val()); 
  ...
if(!isNaN(parseInt(item.val())))
{
    totaal+= parseInt(item.val());
}