【问题标题】:Why is this ending up as concatenation and not addition? [duplicate]为什么这最终是串联而不是加法? [复制]
【发布时间】:2021-01-26 05:27:33
【问题描述】:

function writeSum() {
  var addendOne = document.getElementById("addendOne").value; 
  var addendTwo = document.getElementById("addendTwo").value;  
  document.getElementById("sum").innerHTML = addendOne + addendTwo;
  }
<input type="number" id="addendOne"> + <input type="number" id="addendTwo"><br>
<button onclick="writeSum()">Answer</button>
<p id="sum"></p>

如果我在第一个输入中写入 4,在第二个输入中写入 5,我得到 45。如何将其更改为加法而不是串联。

【问题讨论】:

  • 输入默认以字符串形式出现。您将需要转换为 int
  • parseInt()
  • with document.getElementById("sum").innerHTML = +addendOne + +addendTwo;

标签: javascript html


【解决方案1】:

因为您使用的是字符串

对于输入,您可以使用 parseInt ... 或 valueAsNumber(仅当 input[type="number"] 时)

function writeSum() {
  var addendOne = document.getElementById("addendOne").valueAsNumber; 
  var addendTwo = document.getElementById("addendTwo").valueAsNumber;  
  document.getElementById("sum").innerHTML = addendOne + addendTwo;
  }
<input type="number" id="addendOne"> + <input type="number" id="addendTwo"><br>
<button onclick="writeSum()">Answer</button>
<p id="sum"></p>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-10
    • 1970-01-01
    • 1970-01-01
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-09
    相关资源
    最近更新 更多