Jquery不断返回NaN
我有一个不断返回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 =
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());
}