如果我使用此代码,则它会由数字组成一个字符串,但我不知道为什么。
我希望该程序加8 + 9并使= 17而不是89。
我尝试将其作为一种业余爱好学习,但是大约一年前,我尝试了这一点,但是当我被卡住时,直到现在,我从未尝试过使其发挥作用。
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Variables</h2>
<p id="demo_totaal"></p>
<p id="uitkomst1">8</p>
<p id="uitkomst2">9</p>
<script>
var a = document.getElementById("uitkomst1").innerHTML;
var b = document.getElementById("uitkomst2").innerHTML;
var total = a + b;
document.getElementById("demo_totaal").innerHTML = total;
</script>
</body>
</html>
答案 0 :(得分:3)
在JavaScript中,您可以使用parseInt(string)
来做到这一点。喜欢,
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Variables</h2>
<p id="demo_totaal"></p>
<p id="uitkomst1">8</p>
<p id="uitkomst2">9</p>
<script>
var a = document.getElementById("uitkomst1").innerHTML;
var b = document.getElementById("uitkomst2").innerHTML;
var total = parseInt(a) + parseInt(b);
document.getElementById("demo_totaal").innerHTML = total;
</script>
</body>
</html>
答案 1 :(得分:1)
document.getElementById("uitkomst1").innerHTML
返回字符串,因此您的结果将是将两个字符串加在一起的字符串。
如果要添加两个数字,则需要将字符串转换为数字。 JavaScript有不同的方法来执行此操作。
在您的情况下,应使用Number类进行转换。我认为这是最好的选择,因为它也可以转换十进制数。
var numberA = new Number(a); // "8.1"
var numberB = new Number(b); // "9.1"
var total = numberA + numberA ; // 17.2
答案 2 :(得分:0)
使用parseInt / parseFloat / new Number有多种方法来执行此操作。查看其他答案。
我主要使用它,将数字或字符串乘以1,然后加法。到目前为止,我还没有看到任何问题。性能我不确定,但是
var total = a*1 + b*1;
var a = "1";
var b = "12.5";
var total = a*1 + b*1;
console.log(total)