Javascript 每隔1秒数一到十,并在div class框中打印
我最近在一个JSFIDLE上完成了一个评估,并完成了它,但可能不是按照他们要求的方式完成的。我开始尝试了for循环,但最初无法打印任何内容,并测试了不同的环境。当我最终打印出来时,它只打印最后一个数字,而不是数字1-10。这是我的解决方案,打印它,但不列出它们。你将如何将它们列出来?在按下按钮启动时提供的Div类框中Javascript 每隔1秒数一到十,并在div class框中打印,javascript,html,css,vanilla-typescript,Javascript,Html,Css,Vanilla Typescript,我最近在一个JSFIDLE上完成了一个评估,并完成了它,但可能不是按照他们要求的方式完成的。我开始尝试了for循环,但最初无法打印任何内容,并测试了不同的环境。当我最终打印出来时,它只打印最后一个数字,而不是数字1-10。这是我的解决方案,打印它,但不列出它们。你将如何将它们列出来?在按下按钮启动时提供的Div类框中 函数更改(){ 函数计数(num){ 如果(!num) num=1; var x=document.getElementsByClassName(“框”); x[0].inner
函数更改(){
函数计数(num){
如果(!num)
num=1;
var x=document.getElementsByClassName(“框”);
x[0].innerHTML=num;
如果(数值<10){
setTimeout(函数(){count(num+1);},1000);
}
}
设置超时(计数,1000);
}
如果要垂直追加文本
x[0].innerHTML+='
'+num代码>看起来您的代码可以正常工作。。。你到底在寻找什么?一种列出数字1-10的不同方法,我尝试了一个for循环来列出它,但它只会以1秒的间隔重复打印最后一个数字。如果你正在寻找另一种解决方案:哦,我喜欢!谢谢这在两方面是不正确的。首先,它实际上是x[0]。innerHTML=x[0]。innerHTML+str代码>第二,添加“
”
不会插入换行符。相反,您需要执行以下操作:x[0]。innerHTML=x[0]。innerHTML+“\A”+num代码>x[0]。innerHTML.style.whiteSpace=“pre”代码>你的观点都非常有效,只是因为我的解决方案有效。在试图抨击我的答案之前,试着在小提琴中运行它。@RobertI,对不起,刚刚测试过,您的方法在文件中运行良好。我在想另一篇文章,其中涉及一些FlexBox和嵌套的
以及拒绝从.innerHTML
赋值调用正确解释
元素的其他内容。没有理由扩展该表达式<代码>+=
是首选方法@加梅吉布德。。。这确实有效。过去,element.innerHTML+=“foobar”代码>返回了错误或覆盖了内容。这种新的行为出乎意料,但值得欢迎。
function change(){
function count(num) {
if(!num)
num = 1;
var x = document.getElementsByClassName("box");
x[0].innerHTML = num;
if(num < 10) {
setTimeout(function() { count(num + 1); }, 1000);
}
}
setTimeout(count, 1000);
}