0

電卓の一部として使用する関数があります。JSMinで縮小してもらいました。コードをデバッグできるようにコードを書き直しましたが、コードを書き直したところ、新しいバグが見つかりました(新しいバグは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されているため、このバグを取り除く方法を理解するのに苦労しています。

これは私が得ている出力です:

ここに何かを入力するのにかかる時間で、バラク・オバマは$NaNを作ります

4

1 に答える 1

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
于 2012-10-14T21:50:25.840 に答える