Javascript 如何通过编程方式单击具有类似类的页面上的所有按钮并添加延迟

Javascript 如何通过编程方式单击具有类似类的页面上的所有按钮并添加延迟,javascript,google-chrome,Javascript,Google Chrome,所以我有一个网页,上面有大约20个按钮,我想通过谷歌浏览器的控制台点击所有按钮 按钮的类别都是相同的;但是,许多其他非按钮元素也具有相同的类 如何仅单击具有相同类(例如:randomclass)的按钮,并在每次单击之间添加1秒延迟 我从以下几点开始: var elems = document.getElementsByClassName("randomclass"); 现在,当我看到这个数组时,我不仅得到了按钮,还得到了与我不想点击的同一个类的链接 之后,我将输入: for(var i=0;

所以我有一个网页,上面有大约20个按钮,我想通过谷歌浏览器的控制台点击所有按钮

按钮的类别都是相同的;但是,许多其他非按钮元素也具有相同的类

如何仅单击具有相同类(例如:randomclass)的按钮,并在每次单击之间添加1秒延迟

我从以下几点开始:

var elems = document.getElementsByClassName("randomclass");
现在,当我看到这个数组时,我不仅得到了按钮,还得到了与我不想点击的同一个类的链接

之后,我将输入:

for(var i=0; i<elems.length;i++) { elems[i].click(); }

for(var i=0;i首先,只需使用Document.querySelectorAll获取按钮并从那里开始


您可以添加一个
if
语句来澄清这个简单的要求:

for(var i=0; i<elems.length;i++) {
    if( elems[i].tagName.toLowerCase() === "button" )
        elems[i].click();
}

此解决方案基于jQuery:)

$('.clickme')。每个(函数(i,按钮){
$(按钮)。单击(功能(e){
log('imonfire',$(this.attr('name'));
});
});
$('#fire')。单击(函数(){
console.log('fired');
$('.clickme')。每个(函数(i,按钮){
$(按钮).trigger('click');
});
});

试试这段代码

var elems = document.querySelectorAll("button.randomclass");
function runClick(){
  if(elems.length){
    elems[0].click(); //<= you can use jquery click event => $(elems[0]).click()
    elems.splice(0, 1);
    setTimeout(function(){
      runClick();
    }, 1000);
  }
}

runClick();
var elems=document.querySelectorAll(“button.randomclass”);
函数runClick(){
if(元素长度){
元素[0]。单击();/$(元素[0])。单击()
元素拼接(0,1);
setTimeout(函数(){
运行click();
}, 1000);
}
}
运行click();

您提到您正在寻找延迟。。这是不是意味着你想限制你的回拨,这样你最多只能点击所有按钮中的一个按钮,每秒一次?请看一下。它使用
querySelectorAll
获取对所需按钮的引用,并显示如何将返回的集合转换为数组。然后它使用
forEach
在数组中迭代,并为每个按钮创建一个延迟执行的函数。别忘了提到您正在引入混合!你想解释一下反对票的原因吗?这个解决方案是否不能回答这个问题?
var elems = document.querySelectorAll("button.randomclass");
function runClick(){
  if(elems.length){
    elems[0].click(); //<= you can use jquery click event => $(elems[0]).click()
    elems.splice(0, 1);
    setTimeout(function(){
      runClick();
    }, 1000);
  }
}

runClick();