Javascript 在JS数组中循环,然后以单个值永久结束
我试图在网站上的DIV中打印不同的句子。 我通过遍历数组(wordCycle)来实现这一点。 在数组中循环之后,我想要Umdenken。要永久显示。 但是相反,它在数组中循环,然后输出Umdenken。然后“未定义”将永久显示 这是我的代码:Javascript 在JS数组中循环,然后以单个值永久结束,javascript,arrays,loops,sequence,innerhtml,Javascript,Arrays,Loops,Sequence,Innerhtml,我试图在网站上的DIV中打印不同的句子。 我通过遍历数组(wordCycle)来实现这一点。 在数组中循环之后,我想要Umdenken。要永久显示。 但是相反,它在数组中循环,然后输出Umdenken。然后“未定义”将永久显示 这是我的代码: var wordCycle = [ 'Panierte Schuhsohlen', 'Essbare Sitzbezüge', 'Häuser wie Bäume', 'Städte wie Wälder', 'E
var wordCycle = [
'Panierte Schuhsohlen',
'Essbare Sitzbezüge',
'Häuser wie Bäume',
'Städte wie Wälder',
'Ein neues Bio',
'Masken als Nährstoffe'
];
textSequence(0);
function textSequence(i) {
if (wordCycle.length > i) {
setInterval(function () {
document.getElementById("sequence").innerHTML = wordCycle[i];
textSequence(++i);
}, 5500); // in milliseconds (1000 = 1 second)
}
else if (wordCycle.length == i) {
document.getElementById("sequence").innerHTML = 'Umdenken.';
}
}
使用
setTimeout
来安排单个递归调用,而不是setInterval
:
var wordCycle=[
“Panierte Schuhsohlen”,
“Essbare Sitzbezüge”,
“Häuser wie Bäume”,
“Städte wie Wälder”,
“Ein neues Bio”,
“马斯肯·艾尔斯·努尔斯多夫”
];
文本序列(0);
函数textSequence(i){
如果(wordCycle.length>i){
setTimeout(函数(){
document.getElementById(“序列”).innerHTML=wordCycle[i];
textSequence(++i);
},500);//以毫秒为单位(1000=1秒)
}
else if(wordCycle.length==i){
document.getElementById(“sequence”).innerHTML='Umdenken';
}
}
非常有效,谢谢!您能告诉我如何毫不延迟地从第一句开始吗?您可以让函数体立即设置文本,并让setTimeout
递归地再次调用函数(而不是在setTimeout
中设置文本)。然后textSequence(0)
将立即更改文本。