我知道如何使用 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/