从 jQuery 中的函数返回一个值

returning a value from a function in jQuery

本文关键字:一个 返回 jQuery 函数      更新时间:2023-09-26

>我在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 NaNNaN在计算的其余部分传播。

您可能希望:

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,你根本没有宣布,成为隐含全球恐怖的牺牲品。

  3. 我确保e总是被分配一个值。我猜你想e num <= 50num,但要适当调整。

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

我认为

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

div class="answers">

尝试

 return (Number(new_var + fixed));

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