我正在尝试将 div 中的 innerText 从 0 更改为 div 中的值。
你能告诉我 - 为什么调用堆栈大小超出,我试图创建条件来离开我的递归 - 但它不起作用。
const itemsToCount = document.querySelectorAll('.customers');
function counter (item) {
let stopPoint = Number(item.innerText.slice(0,-1));
let counterNum = 0;
function increase () {
if (counterNum === stopPoint) {
item.innerText = `${item}+`
return;
} else {
setTimeout(() => {
item.innerText = counterNum;
}, 100)
counterNum += 1;
return increase();
}
}
increase()
}
Array.from(itemsToCount).forEach(item => {
counter(item)
})
我的 HTML 看起来像
<div class="wrapper">
<p class="experience__counter customers">250+</p>
<p class="experience__counter customers">20+</p>
<p class="experience__counter customers">150+</p>
</div>
嘿,根据我的说法,querySelectorAll 返回一个集合,因此您不能像这样更改其内部文本。你必须使用这个——itemsToCount[0] 这里 0 是索引尝试使用这个
“尝试将 counterNum += 1;increase(); 放入 setTimeout 回调中” 太棒了 2天前