Javascript .innerHTML和setTimeout仅打印循环中的最后一部分
我是JavaScript新手 我要做的是在同一个位置上逐个打印数组的元素,但要在特定的时间间隔之后 这里它只打印最后一个元素Javascript .innerHTML和setTimeout仅打印循环中的最后一部分,javascript,html,Javascript,Html,我是JavaScript新手 我要做的是在同一个位置上逐个打印数组的元素,但要在特定的时间间隔之后 这里它只打印最后一个元素 <!DOCTYPE html> <html> <head> <title>sample</title> </head> <body> <p id="test"></p> <script> const words =
<!DOCTYPE html>
<html>
<head>
<title>sample</title>
</head>
<body>
<p id="test"></p>
<script>
const words = [ "Word1" , "word2" , "word3" , "word4" ];
for (let i = 0; i < words.length; i++ ) {
console.log(words[i]);
setTimeout(function(){ document.getElementById('test').innerHTML = words[i]; }, 2000);
}
</script>
</body>
</html>
样品
const words=[“Word1”、“word2”、“word3”、“word4”];
对于(设i=0;i
您可以试试这个,它一个接一个地打印所有内容
const words=[“Word1”、“word2”、“word3”、“word4”];
for(设i=0;i
样品
您使用了错误的功能
超时只是将脚本暂停一段时间,您要查找的是setInterval
<!DOCTYPE html>
<html>
<head>
<title>sample</title>
</head>
<body>
<p id="test"></p>
<script>
const words = ['Word1', 'word2', 'word3', 'word4'];
i = 0;
const counter = setInterval(foo, 1000);
function foo() {
document.getElementById('test').innerHTML = words[i];
i++;
if (i >= 4) clearInterval(counter);
}
</script>
</body>
</html>
样品
const words=['Word1','word2','word3','word4'];
i=0;
常数计数器=设置间隔(foo,1000);
函数foo(){
document.getElementById('test').innerHTML=words[i];
i++;
如果(i>=4)清除间隔(计数器);
}
因为它们都在2秒钟内运行(请注意JavaScript是一个单词,而不是两个。很抱歉是个学究)@epa,哦,对了,让
。。。。不过外面有一个骗局。这是:@HereticMonkey也许是这个?