![](/img/trans.png)
[英]How to get date from innerHTML / textContent javascript
[英]How to gradually set every items from a list as an innerHTML/textContent using javascript?
我希望使用javascript在HTML页面上每隔一秒显示列表中的所有项目作为innerHTML。 这是我的代码:
--------------------HTML--------------------
<text id="firstWoman" class="text" x="380" y="110" fill="red" font-size="56">Mary</text>
--------------------JS--------------------
let W1 = document.getElementById("firstWoman");
let W1_list = ["Mary", "Anne", "Jessica"];
let W1_timeline = setInterval(function(){
for(let w of W1_list){
W1.textContent = w;
}
if (let w in W1_list> w.length ){
clearInterval(W1_timeline);
}
}, 1000);
类似的方式也不起作用:
let W1 = document.getElementById("firstWoman");
let W1_list = ["Mary", "Anne", "Jessica"];
let w = W1_list[0];
let W1_timeline = setInterval(function(){
W1.textContent = w++;
if (let w in W1_list> w.length ){
clearInterval(W1_timeline);
}
}, 1000);
这适用于数字但不适用于字符串。 你知道什么是错的吗?
您的代码中存在一些错误。
for(let w of W1_list){
W1.textContent = w;
}
在这里,您将匆忙地遍历完整的W1_list数组。
您需要使用全局计数器来确定要显示的数组中的哪个元素。 然后,您可以通过以下方式将其分配给文本元素:
W1.textContent = W1_list[counter];
要在到达数组末尾时清除计时器,需要递增计数器并将其与数组的长度进行比较。
if (counter == W1_list.length) {
clearInterval(W1_timeline);
}
这是完整的例子:
let W1 = document.getElementById("firstWoman"); let W1_list = ["Mary", "Anne", "Jessica"]; let counter = 0; let W1_timeline = setInterval(function() { W1.textContent = W1_list[counter]; counter++; if (counter == W1_list.length) { clearInterval(W1_timeline); } }, 1000);
<text id="firstWoman" class="text" x="380" y="110" fill="red" font-size="56">Mary</text>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.