0

このスクリプトは 60 から 0 までカウントダウンし、0 になると停止します。

<script type="text/javascript">                         
var counttx= "60";
var counterrx=setInterval(timerrx, 1000); //1000 will  run it every 1 second

function timerrx()
{
 counttx=counttx-1;
if (counttx < 0)
{
 clearInterval(counterrx);
 return;
}

document.getElementById("timerrx").innerHTML=counttx; // watch for spelling
}
</script>

カウントダウンする代わりに、スクリプトをカウントアップさせたいのです。をinに変更し-ましたが、次のことが起こりました。+counttx=counttx-1;

60
601
6011
60111
等
4

5 に答える 5

2

counttx は文字列で、javascript が「1」を追加しているようです。試す:

counttx = +counttx + 1;

編集: または単に var ステートメントの引用符を削除します:

var counttx = 60;
于 2013-06-25T09:41:14.320 に答える
0

から引用符を削除しますvar countxx="60"

次のように書きます

var countxx=60;

そして、それをに変更します

counttx=counttx+1;

引用符内の値に言及すると、それは文字列と見なされ、値に 1 が追加されるだけです。これが、601、6011 などを取得する理由です。

于 2013-06-25T09:45:20.713 に答える
0

0から60まで数えたいですか?その場合は、スクリプトで 60 と 0 を入れ替えて、この行counttx = counttx + 1;を に変更しますcounttx = counttx - 1double quotesまた、約60を取り除きます。

于 2013-06-25T09:46:48.630 に答える
0

operatorの一方のオペランド-が文字列で、もう一方が数値の場合、JS は文字列を数値に変換します。counttx文字列であってもカウントダウンが機能するのはそのためです。しかし、一方のオペランド+が文字列で、もう一方が数値の場合、JS は数値を文字列に変換し、文字列連結を行います。したがって、カウントアップする代わりに、601、6011 などを取得しています。これを修正するにはcounttx、整数として宣言できます。

var counttx = 60;
于 2013-06-25T09:44:38.820 に答える
0

最初に var を整数に解析してからインクリメントする必要があります。counttx = parseInt(counttx) + 1; を使用します。

于 2013-06-25T09:59:00.273 に答える