-1

テキスト ボックスに 50 と入力し、offsetTop として 0 を指定すると、050 が返されます。なんで?これはコードです:

alert(allspan[i].offsetTop+document.getElementById("size").value);
4

6 に答える 6

7

の戻り値の型は.value文字列であるため、2 つの数値が加算されるのではなく、文字列が連結されます。

値で使用する必要がありparseIntます。

alert(allspan[i].offsetTop + parseInt(document.getElementById("size").value,10));
于 2012-10-16T19:02:37.557 に答える
1

これは、document.getElementById("size").valueが整数ではなく文字列を返すためです。これを試して:

parseInt(document.getElementById("size").value);
于 2012-10-16T19:04:53.197 に答える
1

おそらく、それを使用するparseInt(myVar)parseFloat(myVar)、数値データ型に変換する必要があります。

于 2012-10-16T19:03:16.347 に答える
1

(allspan[i].offsetTop)文字列になるstring( ) に整数を追加しdocument.getElementById("size").valueます。

2 番目の値を整数にすれば問題ありません。

allspan[i].offsetTop + parseInt(document.getElementById("size").value)
于 2012-10-16T19:03:38.253 に答える
1

これは一般的な問題です。数式で変数を使用する場合は、 を使用してそれが数値であることを確認する必要がありますparseInt(variableName)

于 2012-10-16T19:03:57.033 に答える
1

試す :

alert(parseInt(allspan[i].offsetTop) + parseInt(document.getElementById("size").value));
于 2012-10-16T19:04:05.100 に答える