对于click()方法,For循环无法正常工作

时间:2019-04-03 22:16:31

标签: javascript html loops

我需要模拟网站上的多个按钮单击,并想使用 for 循环来完成此操作,但是它无法按预期工作(仅单击一次)。

for (i=0; i<10; i++) {
  document.getElementById("increase_your_bet_button").click();
}

更新:我尝试了所有建议的解决方案,但没有任何效果,并且只能运行一次。玩过setTimeout并最终找到了一个合理的解决方案:

for (let i=0; i<10; i++) {
setTimeout(function() {
document.getElementById("increase_your_bet_button").click();
}, 1000*(i+1));
}

2 个答案:

答案 0 :(得分:2)

完美运行:

for (i = 0; i < 10; i++) {
  document.getElementById("increase_your_bet_button").click();
}
.as-console-wrapper { max-height: 100% !important; top: auto; }
<button id="increase_your_bet_button" onclick="console.log('Click!')">Click!</button>

答案 1 :(得分:0)

对我有用。

const btn = document.getElementById('increase_your_bet_button');

btn.addEventListener('click', () => console.log('clicker'));

for (let i = 0; i < 10; i++) {
  btn.click();
}
<button id="increase_your_bet_button">Increase your bet</button>

要解决此问题,请尝试使用异步循环,例如:

const btn = document.getElementById('increase_your_bet_button');

btn.addEventListener('click', () => console.log('clicker'));

let i = 0;

// Click every millisecond.
function clickTenTimes() {
  btn.click();

  i++;
  if (i < 10)
    setTimeout(clickTenTimes, 1);
}

clickTenTimes();
<button id="increase_your_bet_button">Increase your bet</button>