Javascript 将类添加到对象1,等待,在for循环中将类添加到对象2
我想用一个类获取元素集合。然后,我希望遍历集合中的每个元素,以便添加一个类 但是,我希望它向集合中的第一个类添加一个类,然后等待5秒钟,然后再添加到集合中的第二个类。等等Javascript 将类添加到对象1,等待,在for循环中将类添加到对象2,javascript,Javascript,我想用一个类获取元素集合。然后,我希望遍历集合中的每个元素,以便添加一个类 但是,我希望它向集合中的第一个类添加一个类,然后等待5秒钟,然后再添加到集合中的第二个类。等等 <script type="text/javascript"> window.onload = function(){ var boxs = document.getElementsByClassName("paragraph"); for(let i = 0; i <
<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>
window.onload=函数(){
var-boxs=document.getElementsByClassName(“段落”);
for(设i=0;i
您可以使用i
变量来计算适当的延迟(5秒后第一次执行,10秒后第二次执行,等等):
for(设i=0;i
当您调用
setTimeout
时,您只是在为执行回调设置一个计时器。这就是为什么您需要为每个调用计算适当的延迟。您可以使用i
变量来计算适当的延迟(5秒后第一次执行,10秒后第二次执行,等等):
for(设i=0;i
当您调用
setTimeout
时,您只是在为执行回调设置一个计时器。这就是为什么您需要为每个呼叫计算适当的延迟。所有设置的超时同时运行。循环运行并将每件事情设置为以5秒的速度运行。您需要通过抵消每次迭代来增加延迟
for(let i = 0; i < boxs.length; i++){
setTimeout(function () {
boxs[i].classList.add("type");
},5000 * (i + 1));
}
p{color:#CCC;}
p、 键入{color:#000;}
一个
两个
三
四
五个
所有设置的超时同时运行。循环运行并将每件事情设置为以5秒的速度运行。您需要通过抵消每次迭代来增加延迟
for(let i = 0; i < boxs.length; i++){
setTimeout(function () {
boxs[i].classList.add("type");
},5000 * (i + 1));
}
p{color:#CCC;}
p、 键入{color:#000;}
一个
两个
三
四
五个
您需要一个闭包,否则当i==boxs.length
时,所有函数都将执行
for (let i = 0; i < boxs.length; i++) {
( num => setTimeout(function () {
boxs[num].classList.add("type");
}, 5000*num))(i)
}
for(设i=0;isetTimeout(函数(){
boxs[num].classList.add(“type”);
},5000*num)(一)
}
编辑
我刚刚注意到您使用了
let
,因此实际上不需要闭包。每个循环都有自己的作用域。您只需使用5000*i
您需要一个闭包,否则当i==boxs.length
时,所有函数都将执行
for (let i = 0; i < boxs.length; i++) {
( num => setTimeout(function () {
boxs[num].classList.add("type");
}, 5000*num))(i)
}
for(设i=0;isetTimeout(函数(){
boxs[num].classList.add(“type”);
},5000*num)(一)
}
编辑
我刚刚注意到您使用了
let
,因此实际上不需要闭包。每个循环都有自己的作用域。你可以只使用5000*i
不解决boxs[i]
的问题,因为它总是boxs[boxs.length]
,而不是boxs[0]
,boxs[1]
,等等。啊,除了不,因为它与let
一起工作,我今天学到的坏东西。获胜的机会。不过,这一点很好。不能解决始终是boxs[i]
的boxs[boxs.length]
,而不是boxs[0]
,boxs[1]
,等等。啊,除了不,因为它确实适用于let
,我今天学到的坏东西。获胜的机会。不过,这一点很好。