如何生成document.getElementById(';id';).value在Javascript中返回一个数字而不是字符串

如何生成document.getElementById(';id';).value在Javascript中返回一个数字而不是字符串,javascript,string,numbers,getelementbyid,Javascript,String,Numbers,Getelementbyid,我正在制作一个表单,供用户输入数字,然后尝试显示总和。 但是document.getElementById('someid').value正在返回一个字符串。因此,我的add函数是连接字符串,而不是将它们作为数字相加。我该如何解决它。很抱歉问了这么一个基本的问题 //Script function add(){ var a = document.getElementById('num1').value; var b = document.getElementById('num2').value;

我正在制作一个表单,供用户输入数字,然后尝试显示总和。 但是
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()">
//脚本
函数add(){
var a=document.getElementById('num1')。值;
var b=document.getElementById('num2')。值;
返回a+b;
}
log(add());
//HTML
输入2个要添加的数字


尝试使用
parseInt
。此函数返回数字

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

参考链接:

您应该在它前面加上
+
,因为它们是字符串,而不是数字

试试这个:

或者,简单地说:

var a = parseInt(document.getElementById('num1').value);
var b = parseInt(document.getElementById('num2').value);
var x = a + b;
改为修改您的代码:


输入2个要添加的数字

函数add(){ var a=document.getElementById('num1')。值; var b=document.getElementById('num2')。值; var x=+a++b; document.getElementById(“结果”).innerHTML=x; }
您有三种选择

  • 帕森特
  • 请将基数10解析添加到其中,因为您可以避免引擎尝试猜测它应该将整数解析到哪个基数

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

  • 胁迫
  • 我喜欢的方法是通过简单地将字符串包装在数字构造函数中,将字符串类型强制为数字类型

    返回编号(a)+返回编号(b)

    3.一元加号

    一元加号是将某物转换成数字的最快和首选方式。但在我看来,数字(a)更具可读性

    返回+a++b


    注意:不要从解析整数的人那里复制坏代码,而不给它一个解析的基础。

    你必须告诉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;
    }
    

    parseInt(document.getElementById(“id”).value)
    用于整数
    parseFloat(document.getElementById(“id”).value)
    表示浮点数,所以小数

    没有标记。感谢您指出。编辑为
    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;
    }