Javascript - 单击不同按钮时单击带有 class 或 id 的多个元素

Javascript - Click multiple elements with class or id when clicking a different button

我想单击一个按钮,同时单击其他按钮或在每个按钮之间有延迟。这些额外的按钮共享相同的 class 并且它们的 ID 以相同的命名法开头。我知道我可以使用 jQuery 轻松完成此操作,但我想让它与 Vanilla Javascript.

一起使用

我尝试使用 querySelector,但这只会触发第一个元素。 另外,我找到了另一个为每个按钮设置超时的解决方案,问题是当 window 加载时会触发它,当我单击另一个按钮时我需要它工作。

这是我的 html 代码:

<div>
  <button class="bundle-product-button" id="button1" onClick="alert('click button1');">Button 1</button>
  <button class="bundle-product-button" id="button2" onClick="alert('click button2');">Button 2</button>
  <button class="bundle-product-button" id="button3" onClick="alert('click button3');">Button 3</button>
</div>
<button class="add-bundle-to-cart">Trigger</button>

这只会触发第一个按钮:

function testOne() {
    document.querySelector(".bundle-product-button").click();
}
document.querySelector(".add-bundle-to-cart").onclick = testOne;

这会在 window 加载时触发:

var clickcallback = function(i) {
  setTimeout(function() {
    let id = "button" + i;
    document.getElementById(id).click();
  }, 1000); // one second
  if(i <= 3) {
    clickcallback(i+1);
  }
};
clickcallback(1);

我知道这可能很简单,但是如何在单击一个元素时触发多次单击。

querySelector 只匹配第一个元素,你必须使用 querySelectorAll 然后为每个

function testOne() {
    document.querySelectorAll(".bundle-product-button").forEach(function(el) {
       el.click();
    });
}
document.querySelector(".add-bundle-to-cart").onclick = testOne;