javascript - 如何将事件处理程序分配给 JavaScript 中的多个元素?

标签 javascript event-handling dom-events

我知道如何使用 jQuery 来做到这一点,并且我知道如何使用事件委托(delegate)来做到这一点。但是如何用纯 JavaScript 做到这一点呢?

例如,如何将事件处理程序分配给一堆 li

我看到var li = document.querySelectorAll('li');。返回一个类似数组的东西。您只是循环并分配处理程序吗?我觉得一定有更好的方法。如果不是,那么循环遍历类似数组的东西的最佳方法是什么(类似数组的东西叫什么?)?

最佳答案

是的,您应该循环遍历集合并单独分配处理程序。 jQuery 也在幕后执行此操作。

querySelectorAll 返回 NodeList这是一个类似数组的对象。

要循环列表,您可以使用 for 循环:

var list = document.querySelectorAll('li'),
    l = list.length,
    li;

for (var i = 0; i < l; i++) {
   li = list.item(i);
   // ...
} 

或者使用forEach方法:

[].forEach.call(document.querySelectorAll('li'), function(li) {
    // ...
});

关于javascript - 如何将事件处理程序分配给 JavaScript 中的多个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26351383/

相关文章:

javascript - 删除 NodeRed 中 msg.payload 中的引号

javascript - 为什么我不能用forEach来遍历一棵树?

c# - 在 WPF 媒体元素中连续重播视频

javascript - 通过数字文本框按键、按键事件允许某些键

javascript - el.classList 未定义

javascript - React Native,无法启动模拟器。原因 : No emulators found as an output

javascript - 同上 HTTP API 服务器发送事件 CORS 错误

javascript - 如何识别正在使用哪个元素滚动?

cocoa - handleGetURLEvent 没有被调用

javascript - Javascript 中的年份验证