在javascript中没有正确添加2个数字

时间:2013-02-09 16:47:59

标签: javascript html function variables drop-down-menu

我的html中有一个下拉列表,其值显示在这里,

<select id="thedropdown">
<option value="1">test1</option>
<option value="2" selected="selected">test2</option>
<option value="3">test3</option>
</select>

我的javascript:

function myFunction()
{
var a = document.getElementById("thedropdown");
var b = a.options[a.selectedIndex].value;

var y=b;
var x=y+2;
var demoP=document.getElementById("demo")
demoP.innerHTML= x;
}

然而,当我点击按钮时,答案是22,当它应该是4.你可以看到我的问题。请提前寻求帮助

5 个答案:

答案 0 :(得分:5)

现在你的代码连接字符串。在添加之前,您需要parseInt()parseFloat()(或Number()+)这些值。

使用parseInt()时,请务必always specify the second argument (the radix)

b = parseInt(a.options[a.selectedIndex].value, 10);

答案 1 :(得分:2)

您正在连接字符串而不是添加数字:

var x=y+2;

试试:

var x=parseInt(y)+2;

答案 2 :(得分:1)

您可以使用一元+将数字字符串转换为数字:

var y=+b;

var x=+y+b;

答案 3 :(得分:0)

您必须使用parseInt函数转换您的值:

    var y = parseInt(b, 10) + 2;

答案 4 :(得分:0)

如果其中一个操作数是字符串,+运算符将执行连接。

这将起作用

function myFunction()
{
  var a = document.getElementById("thedropdown");
  var b = a.options[a.selectedIndex].value;

  var y=b;
  var x= parseInt(y) + 2;
  var demoP=document.getElementById("demo")
  demoP.innerHTML= x;
}

注意var x= parseInt(y) + 2;