7

数値を0.5ずつ増やすのに問題があります。「+=」演算子を使用しましたが、数値をインクリメントする代わりに、数値の最後に「0.5」の値を追加します。例は次のとおりです。

    <script>
function setTempUp(){
var value = document.getElementById("targetTemp").firstChild.data;
var newvalue = value.replace("°","");
var num = new Number(newvalue);
var num = newvalue += 0.5;
var newtemp = newvalue + '°';
document.getElementById("targetTemp").innerHTML = newtemp;
var cover = document.getElementById('tempChange').clientHeight;
var coverInt = parseInt(cover, 10);
var coverNew = cover - 11;
document.getElementById('tempChange').setAttribute("style","height:" + coverNew + "px");
}       
</script>

温度の例があるので、「newTemp」にも「°」を「アタッチ」しています。これは問題ですか?

たとえば、私の番号は24です。実行すると、「240.5」になります:(

4

3 に答える 3

7

newvalueは文字列です。+=直接使用num:

num += 0.5;
于 2013-02-24T17:53:05.487 に答える
1

数値にキャストしていますが、次のコードで文字列変数を呼び出しています。

var num = new Number(newvalue);
var num = newvalue += 0.5;
var newtemp = newvalue + '°';

あなたが意図したことは

var num = new Number(newvalue);
num = num += 0.5;
var newtemp = num + '°';

しかし、どちらであっても、最後の実行から画面に投稿した温度をロードする代わりに、関数から数値変数を除外してそれをインクリメントし、それを何度も繰り返す必要があります。

于 2013-02-24T17:58:47.117 に答える
0

newValue文字列です - によって返されますvalue.replace("°","");

それ以外の

var num = newvalue += 0.5;

使用する

newValue = parseInt(newvalue, 10) + 0.5;

(num他のどこにも使用していないため、結果を割り当てる必要はありません。)

于 2013-02-24T17:54:20.210 に答える