[英]returning a value from a function in 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 = e * charge;
new_var = new_e / 20;
return (new_var + fixed);
}
[/CODE]
您并不总是为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
<=
50时, e
永远不会得到一个值(因此保留默认的undefined
),因此e * charge
是NaN
, NaN
在计算的其余部分传播。
你可能想要:
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;
}
那里的变化:
我将所有var
语句放在顶部,因为它就是它们的真实位置 。
我宣布你根本没有宣布的new_var
,成为new_var
全球恐怖的牺牲品。
我确保总是为e
赋值。 我猜想你想要当num <= 50
时e
为num
,但要适当调整它。
我一致地缩进代码。 执行一致的代码缩进等操作可以帮助您避免错误,并帮助其他人理解您的代码。 强烈推荐它。
我认为这是因为从文本框中读取的数字是一个字符串。 尝试var vax = Number(('#textbox1').val());
尝试
return (Number(new_var + fixed));
它将变量转换为数字。 还要确保传递给calculateMB的参数实际上是数字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.