繁体   English   中英

从jQuery中的函数返回一个值

[英]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 * chargeNaNNaN在计算的其余部分传播。

你可能想要:

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;
}

那里的变化:

  1. 我将所有var语句放在顶部,因为它就是它们的真实位置

  2. 我宣布你根本没有宣布的new_var ,成为new_var 全球恐怖的牺牲品。

  3. 我确保总是为e赋值。 我猜想你想要当num <= 50enum ,但要适当调整它。

  4. 我一致地缩进代码。 执行一致的代码缩进等操作可以帮助您避免错误,并帮助其他人理解您的代码。 强烈推荐它。

我认为这是因为从文本框中读取的数字是一个字符串。 尝试var vax = Number(('#textbox1').val());

尝试

 return (Number(new_var + fixed));

它将变量转换为数字。 还要确保传递给calculateMB的参数实际上是数字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM