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

时间:2016-11-12 19:04:00

标签: javascript html bookmarklet

我试图.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
}

3 个答案:

答案 0 :(得分:2)

您可以使用:

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

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

工作DEMO

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>

P.S。 .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 */
  });
}

答案 1 :(得分:0)

您可以使用querySeletorAll

var elementList = document.querySelectorAll('.class');

它返回一个列表,因此你必须遍历列表中的每个元素并添加事件处理程序:

for (var i = 0; i < elementList.length; i++) {
    elementList[i].addEventListener(".click", function() {
        // handle click
    });
}

答案 2 :(得分:0)

您可以执行以下操作:

var information = document.getElementsByClassName("...");
var info_items = Array.from(information.children); // Extracts all the child elements and transforms them into an Array

info_items.forEach(item => {
   $(item).click(function() {
      /* 
         Your code for when each item is clicked 
         You can also access data for each item using event.target
      */
   });
});

event.target是jQuery的资源,可用于访问事件目标的数据。您可以获取id,className,nodeName等数据。