警报在全局变量上返回“NaN”

时间:2018-03-19 21:47:34

标签: javascript jquery scope

我确定我只是遗漏了一些超级简单的东西,但为什么我的click函数不能从askPrice全局变量中获取实际值?它只返回“NaN”。如果askPrice在click函数中,它的工作正常。

$(document).ready(function() {
    var askingPrice = parseFloat( $("#mortcalc-ask").val().replace(/,/g,'') ); 
    var i = 0;

  $(".mortcalc-go").click(function(){
    var i = 1;
    alert(askingPrice + " is the cost");
  });

});

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您的“全局”变量(在ready函数的范围内)是在文档“准备就绪”时设置的,而不是在单击时设置的。如果用户填写了一些输入字段#mortcalc-ask,然后单击该按钮,则不会再次运行填充askingPrice的代码。您必须将其移动到单击处理程序中。 (我已删除对i的引用,因为它们似乎与您的问题无关。)

$(document).ready(function() {
    var askingPrice;

  $(".mortcalc-go").click(function(){
    askingPrice = parseFloat( $("#mortcalc-ask").val().replace(/,/g,'') ); 
    alert(askingPrice + " is the cost");
  });
});