Some Bad Name
Some Bad Name

Reputation: 3

I want to add delay before each click

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

Answers (1)

Gulam Hussain
Gulam Hussain

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

Related Questions