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>

我不想倒计时,而是希望脚本倒计时。我将其更改-+incounttx=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

如果运算符的一个操作数-是字符串,另一个是数字,JS 会将字符串转换为数字。这就是为什么倒计时工作即使counttx是字符串。但是当一个操作数+是字符串而另一个是数字时,JS 会将数字转换为字符串并进行字符串连接。因此,您将得到 601、6011 等,而不是向上计数。要解决此问题,您可以声明counttx为整数。

var counttx = 60;
于 2013-06-25T09:44:38.820 回答
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 - 1. 也摆脱了double quotes60左右。

于 2013-06-25T09:46:48.630 回答
0

您需要先将 var 解析为整数,然后将其递增。使用 counttx = parseInt(counttx) + 1;

于 2013-06-25T09:59:00.273 回答