我的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.你可以看到我的问题。请提前寻求帮助
答案 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;