我想获得一个类的元素集合。然后,我希望遍历集合中的每个元素以添加一个类。

但是,我希望它向集合中的第一个添加一个类,然后等待5秒钟,然后再向集合中的第二个添加一个类。等等...

<script type="text/javascript">
    window.onload = function(){
        var boxs = document.getElementsByClassName("paragraph");

        for(let i = 0; i < boxs.length; i++){
            setTimeout(function () {
                boxs[i].classList.add("type");
            },5000);
        }
    }
</script>

最佳答案

您可以使用i变量来计算setTimeout的适当延迟(5s之后的第一次执行,10s之后的第二次执行,等等):

for(let i = 0; i < boxs.length; i++){
  setTimeout(function () {
    boxs[i].classList.add("type");
  }, (i + 1) * 5000);
}


调用setTimeout时,您只是在设置计时器以执行回调。因此,您需要为每个呼叫计算适当的延迟。

10-06 12:23