Javascript 变量显示为NaN

Javascript 变量显示为NaN,javascript,jquery,variables,nan,Javascript,Jquery,Variables,Nan,我有一个变量一直显示为NaN。我不明白它为什么这样做 它不会显示为NaN,而是显示它应该显示的值(来自jQuery UI滑块) 但是我的下一位代码总是显示为NaN,它使函数中的其余计算无法工作。如图所示: var gdCost = $("#gdcost").val(gdHours*20); 我试过使用parseInt和parseFloat但它不起作用。有什么建议吗?setter val(新值)返回jQuery对象。你可以写 var gdCost = $("#gdcost").val(gdHou

我有一个变量一直显示为
NaN
。我不明白它为什么这样做

它不会显示为
NaN
,而是显示它应该显示的值(来自jQuery UI滑块)

但是我的下一位代码总是显示为
NaN
,它使函数中的其余计算无法工作。如图所示:

var gdCost = $("#gdcost").val(gdHours*20);
我试过使用
parseInt
parseFloat
但它不起作用。有什么建议吗?

setter val(新值)返回jQuery对象。你可以写

var gdCost = $("#gdcost").val(gdHours*20).val();
相反。

setter val(新值)返回jQuery对象。你可以写

var gdCost = $("#gdcost").val(gdHours*20).val();

相反。

您可以像

foo = parseInt($('#foo').val());

因为input type=“text”可以使用val()返回字符串,并且不能将字符串相乘,所以可以像

foo = parseInt($('#foo').val());

由于input type=“text”可以使用val()返回字符串,并且在将参数传递给
val(…)
函数时不能将字符串相乘,因此它返回的是对象,而不是值。因此,在第二个示例中,等效于以下内容:

$("#gdcost").val(gdHours*20);
var gdCost = $("#gdcost");
因此返回的是jQuery对象,而不是元素的值


jQuery这样做是为了支持函数调用链接。

当您将参数传递给
val(…)
函数时,它返回的是对象,而不是值。因此,在第二个示例中,等效于以下内容:

$("#gdcost").val(gdHours*20);
var gdCost = $("#gdcost");
因此返回的是jQuery对象,而不是元素的值


jQuery这样做是为了支持函数调用链接。

在字段#gdhours中提供什么类型的值?
gdhours
可能是一个字符串。不能将字符串乘以20。是否可以尝试
警报((“”+gdHours).length)
以确保周围没有任何隐藏的字符?请使用console.log(typeof gdHours)了解情况。您在gdHours变量或gdCost中使用了parseInt吗?第一个是getter,第二个是setter函数……您在字段#gdHours中提供了什么类型的值?
gdHours
可能是一个字符串。不能将字符串乘以20。是否可以尝试
警报((“”+gdHours).length)
以确保周围没有任何隐藏的字符?请使用console.log(typeof gdHours)了解情况。您是在gdHours变量中还是在gdCost中使用了parseInt?第一个是getter,第二个是setter函数…非常感谢!!正如您所知,我对编码是新手,因此非常感谢您提供的任何帮助。此外,您最好在
parseInt
调用(定义基数)中添加第二个参数,如
parseInt(gdHours,10)
,以防止在前导为零的情况下解析无效。阅读更多关于它的信息一般来说,基数是一个很好的点,尽管实际上在本例中,parseInt根本不是必需的,因为该值来自jqueryui滑块。我将从我的答案中删除它。非常感谢!!正如您所知,我对编码是新手,因此非常感谢您提供的任何帮助。此外,您最好在
parseInt
调用(定义基数)中添加第二个参数,如
parseInt(gdHours,10)
,以防止在前导为零的情况下解析无效。阅读更多关于它的信息一般来说,基数是一个很好的点,尽管实际上在本例中,parseInt根本不是必需的,因为该值来自jqueryui滑块。我将把它从我的答案中删除。