将 .click() 添加到数组中的每个项目

新手上路,请多包涵

我正在尝试 .click() 数组中的所有项目,我该怎么做?

无法使用 JQuery。

 var information = document.getElementsByClassName("menu-list-element menu-list-element-basic clickable with-icon-left with-icon-right ");

for (i = 10; i < information.length; i++) {
    //.click() all items in the information array
}

原文由 A. Seidel 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 265
1 个回答

您可以使用:

 var elements = document.getElementsByClassName("class");

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

工作 演示

 document.getElementById("btn").addEventListener("click", myFunction, false);

function myFunction() {
  var elements = document.getElementsByClassName("example");

  for (var i = 0, len = elements.length; i < len; i++) {
    elements[i].click();
  }
}
 .example {
  width: 50px;
  height: 50px;
  background-color: red;
  cursor: pointer;
  margin: 10px;
}
 <input type="checkbox" class="example">
<input type="checkbox" class="example">
<input type="checkbox" class="example">
<input type="checkbox" class="example">
<input type="checkbox" class="example">

<button id="btn">
  Simulate click
</button>

PS .click() (如你所问)不是 click event 而是一个模拟点击事件的javascript函数,来自 MDN

HTMLElement.click() 方法模拟鼠标单击元素。

如果你想使用 click 作为事件:

 var elements = document.getElementsByClassName("example");

  for (var i = 0, len = elements.length; i < len; i++) {
    elements [i].addEventListener("click", function() {
        /* Do your stuffs here */
    });
  }


或者使用 Jquery:

使用 jquery .each() 代替:

 $(".class").each(function(){
  $(this).click();
  /* Or for the event */
  $(this).click(function() {
    /* Do your stuffs here */
  });
});

原文由 paolobasso 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题