这个假期我愿意学习用JS操作DOM
我从简单的事情开始,例如:

var sliderControler = document.getElementsByClassName("slider-controler");
var slideAtual = 0;

for(i = 0; i < sliderControler.length;i++) {
  sliderControler[i].click(function(){
    console.log("I love to screw my brain with js");
  })
}


为什么我不能关联此事件?
我有一个节点列表吗?

然后,document.getElementsByClassName返回一个nodeList,
jQuery $(“。slider-controler”)返回一个对象。

jQuery返回的节点列表对象之间有什么区别

最佳答案

当前,您正在触发HTMLElementNodeList)中每个sliderControler的点击事件。

NodeList的每个元素都是一个HTMLElement。要将单击处理程序绑定到NodeList中的元素,请使用addEventListener或将处理程序分配给onclick属性。

for(i = 0; i < sliderControler.length;i++) {
  sliderControler[i].addEventListener('click', function(){
    console.log("I love js");
  });
}


如果您使用的是jQuery,则无需使用循环来绑定单击处理程序。

$('.sliderControler').click(function() {
    console.log("I love js");
});

10-07 21:32