我有一个querySelectorAll
列表,看起来像这样:
NodeList(676) [div.tile.tooltip, div.tile.tooltip, div.tile.tooltip.tooltipstered,
div.tile.tooltip, div.tile.tooltip, div.tile.tooltip, div.tile.tooltip,
div.tile.tooltip.tooltipstered, div.tile.tooltip.tooltipstered, div.tile.tooltip,
div.tile.tooltip, div.tile.tooltip.tooltipstered, ...
每个都是一个小部件,我可以在网站上点击,然而,我想点击每个,但与计时器延迟每次点击几秒钟.我已经尝试了以下:
var tile = document.querySelectorAll(".perspectivesInner.clearFix > div");
var t = new Array();
for( let i = 0 ; i < tile.length ; i++ ) {
(function(){ // create a closure (new scope)
var _i = i; // make a local copy of `i` from the outer scope
t[i] = setTimeout( function(){return tile[i].click()}, i*2000 );
})();
}
这点击了所有内容,但我登录到了控制台:
VM2642:5未捕获的类型错误:无法在5:52读取未定义的属性(阅读“click”)
清洁替代品是什么?
2条答案
按热度按时间mklgxw1f1#
下面是一种更ES6的编写方法,可以解决您的问题。
myzjeezk2#
我认为您可以使用
Promises
非常简单地解决这个问题使用异步等待方法,您可以像这样在每次单击之间等待随机时间