gpt4 book ai didi

javascript - 使用 settimeout 和 for 循环进行延迟

转载 作者:行者123 更新时间:2023-11-28 10:40:00 25 4
gpt4 key购买 nike

我从这里得到了这段代码: How do I add a delay in a JavaScript loop?我在 IE 的控制台中使用它,在这段代码之后,我在控制台中使用 myFunction() 调用该函数来运行;第一个代码运行完美,它点击第二个“某物”标记元素 10 次,两次点击之间有 3000 毫秒的延迟。

function myFunction() {
(function myLoop (i) {
setTimeout(function () {
document.getElementsByTagName("something")[1].click();
if (--i) myLoop(i); // decrement i and call myLoop again if i > 0
}, 3000)
})(10);
}

我想用 foo 循环更改此代码中的数字“1”,因此我想创建一个单击名为“something”的元素的代码。我创建了这段代码,但不起作用:

for (x=1;x<10;x++){
function myFunction() {
(function myLoop (i) {
setTimeout(function () {
document.getElementsByTagName("something")[1].click();
if (--i) myLoop(i); // decrement i and call myLoop again if i > 0
}, 3000)
})(10);
}

}

最佳答案

如果要以一定间隔打印每个元素,则需要将计时值乘以整数,否则将一次记录所有元素。

此外,您可能不需要在循环内创建 myFunction

for (var x = 1; x < 5; x++) {
(function(i) {
setTimeout(function() {
console.log(i);
}, i * 1000)
}(x))
}

关于javascript - 使用 settimeout 和 for 循环进行延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53407769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com