0

我的 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。你可以看到我的问题。提前为帮助喝彩

4

5 回答 5

6

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

使用时parseInt()请确保始终指定第二个参数(基数)

b = parseInt(a.options[a.selectedIndex].value, 10);
于 2013-02-09T16:50:05.010 回答
3

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

var y=+b;

或者

var x=+y+b;
于 2013-02-09T16:52:58.017 回答
2

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

var x=y+2;

试试看:

var x=parseInt(y)+2;
于 2013-02-09T16:50:43.397 回答
0

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

    var y = parseInt(b, 10) + 2;
于 2013-02-09T16:50:39.137 回答
0

如果其中一个操作数是 string ,则+operator 执行连接。

这会起作用

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;

于 2013-02-09T16:58:40.587 回答