【发布时间】:2022-01-09 18:17:03
【问题描述】:
我有问题 当我删除字母时,单词仍然存在
我有两个 h1,我从每个 h1 中删除单词,当所有字母都被删除时,我专门为每个 h1 停止间隔
let mySelector = document.querySelectorAll(".writ-text");
for (let l = 0; l < mySelector.length; l++) {
removeText = setInterval(function() {
// Cut the last letter of the word and print the word after editing
document.querySelectorAll(".writ-text")[l].textContent =
document.querySelectorAll(".writ-text")[l].textContent.substr(0,
document.querySelectorAll(".writ-text")[l].textContent.length - 1);
// Check if the entire word has been deleted
if (document.querySelectorAll(".writ-text")[l].textContent.length == 0) {
clearInterval(removeText)
}
}, 1000);
}
<h1 class="writ-text">gold</h1>
<h1 class="writ-text">golder</h1>
【问题讨论】:
-
请改用
const removeText =。目前removeText正在成为一个全局变量,因此每次迭代都会覆盖之前的赋值。添加const(或let)使其范围保持在for循环块
标签: javascript html for-loop clearinterval