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;
}

ただし、ボタンをクリックしたときの答えは、4になるはずのときに22になります。私の問題を見ることができます。事前に助けを求める乾杯

4

5 に答える 5

6

現在、コードは文字列を連結しています。追加する前に値をparseInt()or parseFloat()(またはNumber()or )する必要があります。+

を使用parseInt()する場合は、必ず2 番目の引数 (基数) を指定してください

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

オペランドの 1 つが文字列の場合、+演算子は連結を実行します。

これはうまくいきます

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 に答える