テキスト ボックスに 50 と入力し、offsetTop として 0 を指定すると、050 が返されます。なんで?これはコードです:
alert(allspan[i].offsetTop+document.getElementById("size").value);
テキスト ボックスに 50 と入力し、offsetTop として 0 を指定すると、050 が返されます。なんで?これはコードです:
alert(allspan[i].offsetTop+document.getElementById("size").value);
の戻り値の型は.value
文字列であるため、2 つの数値が加算されるのではなく、文字列が連結されます。
値で使用する必要がありparseInt
ます。
alert(allspan[i].offsetTop + parseInt(document.getElementById("size").value,10));
これは、document.getElementById("size").value
が整数ではなく文字列を返すためです。これを試して:
parseInt(document.getElementById("size").value);
おそらく、それを使用するparseInt(myVar)
かparseFloat(myVar)
、数値データ型に変換する必要があります。
(allspan[i].offsetTop)
文字列になるstring( ) に整数を追加しdocument.getElementById("size").value
ます。
2 番目の値を整数にすれば問題ありません。
allspan[i].offsetTop + parseInt(document.getElementById("size").value)
これは一般的な問題です。数式で変数を使用する場合は、 を使用してそれが数値であることを確認する必要がありますparseInt(variableName)
。
試す :
alert(parseInt(allspan[i].offsetTop) + parseInt(document.getElementById("size").value));