【问题标题】:Change count down to count up将倒数改为向上计数
【发布时间】:2013-06-25 09:38:59
【问题描述】:

此脚本从 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>

我希望脚本可以向上计数,而不是倒计时。我在counttx=counttx-1; 中将- 更改为+,但随后发生了以下情况:

60 601 6011 60111 等等

【问题讨论】:

    标签: javascript counter countdown


    【解决方案1】:

    看起来 counttx 是一个字符串,而 javascript 正在附加“1”。试试:

    counttx = +counttx + 1;
    

    编辑:或者只是删除 var 语句中的引号:

    var counttx = 60;
    

    【讨论】:

      【解决方案2】:

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

      var counttx = 60;
      

      【讨论】:

        【解决方案3】:

        删除var countxx="60"中的引号;

        写成

        var countxx=60;
        

        然后改成

        counttx=counttx+1;
        

        当您在引号中提及该值时,它会将其视为字符串并仅将 1 附加到该值,这就是您获得 601、6011 等的原因。

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

            你想从 0 数到 60 吗?如果是这样,交换脚本中的 60 和 0 并将此行 counttx = counttx + 1; 更改为 counttx = counttx - 1。 60左右也去掉double quotes

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-05-01
              • 1970-01-01
              相关资源
              最近更新 更多