在某个值处停止javascript增量

在某个值处停止javascript增量,javascript,Javascript,我编写了这个小脚本,它每3.2秒递增一个给定值,在本例中为200 var i = 200; function increment() { i++; document.getElementById('generated').innerHTML = Number(i).toLocaleString('en'); } setInterval('increment()', 3200); 我试图让脚本在达到某个点时停止增加值(例如300)。我相信这是一个简单的解决办法,但我想不出该怎么做 您需要保存间隔

我编写了这个小脚本,它每3.2秒递增一个给定值,在本例中为200

var i = 200;
function increment() {
i++;
document.getElementById('generated').innerHTML = Number(i).toLocaleString('en');
}
setInterval('increment()', 3200);

我试图让脚本在达到某个点时停止增加值(例如300)。我相信这是一个简单的解决办法,但我想不出该怎么做

您需要保存间隔,然后将其清除:

var i = 200;

function increment() {
    if (i == 300) {
        // stop when it hits 300
        window.clearInterval(id);
        return;
    }

    i++;
    document.getElementById('generated').innerHTML = Number(i).toLocaleString('en');
}

var id = window.setInterval('increment()', 3200);
var i = 200;

function increment() {
  if (i >= 300) {
    clearInterval(interval);
    return;
  }
  i++;
  document.getElementById('generated').innerHTML = Number(i).toLocaleString('en');
}
var interval = setInterval(increment, 3200);
请注意,您可以传递函数名,而不是使用
“interval()”
字符串表示法

下面是一个例子(我已经加快了时间,这样就不用花很长时间来证明一个观点)


希望有帮助

您可以使用for循环

var i = 200;
var max = 300;

function increment() {

    for (i < max; i++) {
        document.getElementById('generated').innerHTML = Number(i).toLocaleString('en');
    }
}
setInterval('increment()', 3200);
var i=200;
var max=300;
函数增量(){
对于(i

这里有更多信息:

查看
clearInterval
。var timer=setInterval(increment(),3200);并使用clearInterval(计时器)销毁计时器。如j08691所述,查看
clearInterval
。此外,决不能将字符串传递给
setInterval
。而不是直接作为参数传递函数:
setInterval(增量,3200)增量函数内的clearInterval(如果i>200)