[英]Why does my parseFloat function not work properly?
當我在下面進行練習時,遇到無法獲取結果的問題,我嘗試在num1
輸入一個數字,在num2
輸入一個數字,然后單擊計算按鈕,希望得到答案。 我檢查了Chrome開發人員工具,結果發現num3
是NaN
。 為什么是NaN
?
var num1 = document.getElementById('num1').value; var num2 = document.getElementById('num2').value; var num3 = parseFloat(num1)+parseFloat(num2); var btn = document.getElementById("btn"); btn.onclick=function () { console.log(num3); console.log(parseFloat(num1)); };
<input type="text" name="num1" id="num1"> <input type="text" name="num2" id="num2"> <button class="btn" id="btn">calculate</button>
稍后更改並單擊按鈕時,頁面加載期間分配給num1
的值不會神奇地更新。 因此,您需要再次檢索它。 只需將HTMLInputElement存儲在變量而不是其值中:
var num1Input = document.getElementById('num1');
btn.onclick = function () {
var num1 = num1Input.value;
console.log(parseFloat(num1));
};
在函數內移動變量:
var btn = document.getElementById("btn"); btn.onclick=function () { var num1 = document.getElementById('num1').value; var num2 = document.getElementById('num2').value; var num3 = parseFloat(num1)+parseFloat(num2); console.log(num3); console.log(parseFloat(num1)); };
<input type="text" name="num1" id="num1"> <input type="text" name="num2" id="num2"> <button class="btn" id="btn">calculate</button>
實際上,您在這里做錯了,在輸入字段中輸入值之前先獲取了元素值,下面是准確的代碼
var btn = document.getElementById("btn");
btn.onclick=function () {
var num1 = document.getElementById('num1').value;
var num2 = document.getElementById('num2').value;
var num3 = parseFloat(num1)+parseFloat(num2);
console.log(num3);
console.log(parseFloat(num1));
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.