通过JavaScript递增计数,直到达到给定值

通过JavaScript递增计数,直到达到给定值,javascript,html,Javascript,Html,我有一个JavaScript代码在HTML主体上打印一个自动递增计数。计数从0开始,我使用setInterval函数通过定期自动单击按钮将其递增。当数到10时,我需要停止计数。我使用了一个while循环来实现自动计数功能,但是当打开页面时,它会持续加载而不提供结果。如何得到正确的结果 JavaScript: var a=0; function count(){ a=a+1; document.getElementById('p').innerHTML=a; return

我有一个JavaScript代码在HTML主体上打印一个自动递增计数。计数从0开始,我使用setInterval函数通过定期自动单击按钮将其递增。当数到10时,我需要停止计数。我使用了一个while循环来实现自动计数功能,但是当打开页面时,它会持续加载而不提供结果。如何得到正确的结果

JavaScript:

var a=0;

function count(){
    a=a+1;
    document.getElementById('p').innerHTML=a;
    return true;
}

while (a!=10)
{
    window.onload = function(){
    var button = document.getElementById('clickButton');
    setInterval(function(){
        button.click();
    },1000);
};
}
document.getElementById('p').innerHTML="Over!"; 

您可以为间隔使用一个变量,以便稍后清除,并在所需值内进行检查

然后需要一个
onload
事件来启动间隔,如果单击,则需要一个按钮事件

var a=0,
间隔
window.onload=函数(){
var button=document.getElementById('clickButton');
间隔=设置间隔(函数(){
按钮。单击();
}, 1000);
}
函数计数(){
document.getElementById('p').innerHTML=++a;
如果(a>10){
间隔时间;
document.getElementById('p').innerHTML=“结束!”;
}
}

--

按钮
我的建议如下

var a=0;
函数计数(){
a=a+1;

如果(a您可以为间隔使用一个变量,然后用
clearInterval

功能按钮操作(){
var计数=0;
var idInterval=setInterval(函数(){
让div=document.getElementById(“count”);
div.innerHTML+=计数;
计数++;
如果(计数>10){
净空间期;
}
}, 1000);
}


单击我
会使事情变得过于复杂,几乎不应该在while循环中使用setInterval

设a=0;
const button=document.getElementById('foo');
常量间隔=设置间隔(()=>{
if(a++<10){
返回按钮。单击();
}
间隔时间;
}, 1000);
button.addEventListener('click',()=>console.log(a));

按钮

浏览器只有一个线程来执行JS和更新/执行事件队列。示例中的
while
循环会阻止任何其他执行,并且不会执行间隔函数,也不会检测到按钮点击,因此
a
不会更改,并且您有一个无限循环。将所有内容包装在
窗口中。onload
handler,省略
,而
循环,在interval函数中选中
a
,这样代码才能工作。