Javascript 从jQuery中的函数返回值
我在jquery中有一个函数。我的函数返回一个值,但当我检查返回值时,我得到了一个“NAN”,可能是什么问题:Javascript 从jQuery中的函数返回值,javascript,jquery,Javascript,Jquery,我在jquery中有一个函数。我的函数返回一个值,但当我检查返回值时,我得到了一个“NAN”,可能是什么问题: [CODE] var vax = ('#textbox1').val(); var newVal = calculateMB(vax,11,3.1); alert(newVal); function calculateMB(num,charge,fixed) { if(num>50) var e = num - 50; var new_e =
[CODE]
var vax = ('#textbox1').val();
var newVal = calculateMB(vax,11,3.1);
alert(newVal);
function calculateMB(num,charge,fixed)
{
if(num>50)
var e = num - 50;
var new_e = e * charge;
new_var = new_e / 20;
return (new_var + fixed);
}
[/CODE]
试一试
它将变量转换为数字。还要确保传递给calculateMB的参数实际上是数字。您并不总是给
e
赋值,而是在计算中使用它。下面是正确缩进的代码:
function calculateMB(num,charge,fixed)
{
if(num>50)
var e = num - 50;
var new_e = e * charge;
new_var = new_e / 20;
return (new_var + fixed);
}
当
num
为时,我认为这是因为从文本框中读取的数字是一个字符串。尝试var vax=Number(('#textbox1').val()
将值分配给vax
后立即尝试alert(vax)
。您可能没有得到您认为得到的。您的函数仅在num>50
时返回一个值。这是个问题。@JonathanM:不,它总是返回一个值。if
仅与它后面的行相关。(非常非常难读懂缩进都是这样的代码。)@henry:注意,这与jQuery没有任何关系。您的函数只是一个JavaScript函数。@brightgarden:是的,它们是。(我没说不是。)e
仍将是未定义的。提升的只是var
部分,而不是分配部分。例如,var E=num-50代码>变为var e代码>,已吊装,且e=num-50代码>,它不是。
function calculateMB(num,charge,fixed)
{
if(num>50)
var e = num - 50;
var new_e = e * charge;
new_var = new_e / 20;
return (new_var + fixed);
}
function calculateMB(num,charge,fixed)
{
var e, new_e, new_var;
e = (num > 50) ? num - 50 : num;
new_e = e * charge;
new_var = new_e / 20;
return new_var + fixed;
}