テキスト ボックスに 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));