需要JavaScript NaN bug帮助

时间:2012-10-14 21:48:31

标签: javascript jquery math nan

我有一个用作计算器一部分的功能。我用JSMin缩小了它。我重写了代码,所以我可以调试代码,但现在我重写代码我发现了一个新的bug(新的bug是NaN问题)。输出应该是一个数字,而是NaN。代码如下所示。

    function calculate() {

  console.log(1);
  var activity = $("#txtActivity").val();

  var days = parseInt( $("#txtDays").val(), 10);
  var hours = parseInt( $("#txtHours").val(), 10);
  var minutes = parseInt( $("txtMinutes").val(), 10);
  var seconds = parseInt( $("txtSeconds").val(), 10);

  var MoneyMadeDuringActivity = (days * 21464) + (hours * 2683) + (minutes * 4472) + (seconds * 0.74);



  $("#CalcOutput").html("In the time it takes me to " + activity + ",<br />Barack Obama makes $" + MoneyMadeDuringActivity);

}

  $("#btnCalculate").click(function() {
    calculate();
  });

我无法弄清楚如何摆脱这个错误,因为“activity”是唯一的字符串变量,所有其他变量都是数字或者是parseInt'ed。

这是我得到的输出:

在我输入这些东西的时候,巴拉克奥巴马赚了NaN

1 个答案:

答案 0 :(得分:4)

您错过了以下几行中的#

var minutes = parseInt( $("txtMinutes").val(), 10);
var seconds = parseInt( $("txtSeconds").val(), 10);

因为选择器找不到任何东西,所以它是有效的:

var minutes = parseInt(undefined, 10); // NaN
var seconds = parseInt(undefined, 10); // NaN