停止某个值的javascript增量

时间:2015-02-19 21:32:13

标签: javascript

我编写了这个小脚本,它将给定值(在本例中为200)每3.2秒增加1。

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

我试图让脚本在达到某个点后停止增加值(比方说300)。我确定这是一个简单的修复,但我想不出如何解决这个问题。

3 个答案:

答案 0 :(得分:3)

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

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()"字符串表示法。

这是一个fiddle(我加快了时间,所以不需要永远证明这一点)

希望它有所帮助!

答案 1 :(得分:0)

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);

答案 2 :(得分:-1)

你可以使用for循环。

var i = 200;
var max = 300;

function increment() {

    for (i < max; i++) {
        document.getElementById('generated').innerHTML = Number(i).toLocaleString('en');
    }
}
setInterval('increment()', 3200);

此处有更多信息:http://www.w3schools.com/js/js_loop_for.asp