簡體   English   中英

我如何讓 document.getElementById('id').value 在 Javascript 中返回一個數字而不是一個字符串

[英]How do I make document.getElementById('id').value return a number not a string in Javascript

我正在制作一個表格供用戶輸入數字,然后嘗試顯示總和。 但是document.getElementById('someid').value正在返回一個字符串。 因此,我的 add 函數是連接字符串而不是將它們添加為數字。 我該如何解決。 抱歉問這么基本的問題。

//Script
function add(){
var a = document.getElementById('num1').value;
var b = document.getElementById('num2').value;
return a + b;
}
console.log(add());
//HTML
<p> Input 2 numbers to add</p>
<input type="number" id="num1"/>
<input type="number" id="num2"/>
<input type="submit" value="Add" onclick="add()">

嘗試使用parseInt 此函數返回數字

你有三個選擇。

  1. 解析整數

請添加基數為 10 的解析,因為您可以避免引擎嘗試猜測它應該將整數解析為哪個基數。

返回 parseInt(a, 10) + parseInt(b, 10);

  1. 強制

我更喜歡的方法是通過簡單地將字符串包裝在數字構造函數中來將字符串類型強制轉換為數字類型

返回數字(a)+數字(b);

3.一元加

一元加號是將某物轉換為數字的最快和首選方式。 但我認為 Number(a) 更具可讀性。

返回 +a + +b

注意:不要從解析整數的人那里復制錯誤的代碼,而不給它一個解析的基礎。

var a = parseInt(document.getElementById('num1').value);

參考鏈接: http : //www.w3schools.com/jsref/jsref_parseint.asp

你應該在它前面加上+因為它們是字符串而不是數字

試試這個:

function add(){
    var a = document.getElementById('num1').value;
    var b = document.getElementById('num2').value;
    var x = +a + +b;
    return x;
}

或者,簡單地說:

var a = parseInt(document.getElementById('num1').value);
var b = parseInt(document.getElementById('num2').value);
var x = a + b;

改為修改您的代碼:

<html>
<body>
<p>Input 2 numbers to add</p>
<input type="number" id="num1"/>
<input type="number" id="num2"/>
<input type="submit" value="Add" onclick="add()">
<p id="result"></p>
<script>
function add(){
    var a = document.getElementById('num1').value;
    var b = document.getElementById('num2').value;
    var x = +a + +b;
    document.getElementById("result").innerHTML = x;
}
</script>
</body>
</html>

您必須告訴 javascript 您想要使用數字而不是字符串。 所以代替

function add(){
  var a = document.getElementById('num1').value;
  var b = document.getElementById('num2').value;
  return a + b;
}

你可以使用

function add(){
  var a = document.getElementById('num1').value + 0;
  var b = document.getElementById('num2').value + 0;
  return a + b;
}

function add(){
  var a = parseInt(document.getElementById('num1').value);
  var b = parseInt(document.getElementById('num2').value);
  return a + b;
}

parseInt(document.getElementById("id").value)對於整數parseFloat(document.getElementById("id").value)對於浮點數所以小數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM