Reputation: 3
I want to click all same class button of a webpage. And i want to add delay before each click. Can anyone please help me to achieve that?
var buttons = document.getElementsByClassName('btn btn-info btn-xs');
for(var i = 0; i < buttons.length; i++)
setTimeout(buttons[i].click(), 3000)
Upvotes: 0
Views: 62
Reputation: 1763
You need to use setTimeout
API. and make sure loop variable i
is declared as let
.
Button 1 will clicked instantly, then each click will wait 2 seconds.
var buttons = document.getElementsByClassName('buttonClass');
for (let i = 0; i < buttons.length; i++) {
setTimeout(() => {
// button[i].click();
console.log(buttons[i].textContent)
}, i * 2000);
}
<button class="buttonClass" >Button 1</button>
<button class="buttonClass" >Button 2</button>
<button class="buttonClass" >Button 3</button>
<button class="buttonClass" >Button 4</button>
<button class="buttonClass" >Button 5</button>
<button class="buttonClass" >Button 6</button>
<button class="buttonClass" >Button 7</button>
<button class="buttonClass" >Button 8</button>
Upvotes: 2