javascript - 使用 javascript queryselectorall 而不是 jquery 选择器

标签 javascript jquery jquery-selectors selectors-api

我想用纯JavaScript重写这个jQuery:

var gallery1 = $('.gallery a');

gallery1.click(function(event){
    event.preventDefault();
    console.log('onclick');
});

在尝试弄清楚之后,我得到了这样的结果:

var gallery = document.querySelector('.gallery a');

gallery.onclick = function(event){
    event.preventDefault();
    console.log('onclick');
};

但它仅适用于 ul 的第一个 anchor 。

当我尝试使用querySelectorAll('.gallery a')时,它什么也不做。

我是 JavaScript 新手。有人可以帮我解决一下吗?

HTML

<ul class="gallery" id="gallery">
    <li class="">
        <a href="img/gallery/gallery1.jpg" class="" id="anchor">
            <img src="img/gallery/gallery1.jpg" alt="image 1" class="img">
        </a>
    </li>
    <li class="">
        <a href="img/gallery/gallery2.jpg" class="">
            <img src="img/gallery/gallery2.jpg" alt="image 1" class="img">
        </a>
    </li>
    <li class="">
        <a href="img/gallery/gallery3.jpg" class="">
            <img src="img/gallery/gallery3.jpg" alt="image 1" class="img">
        </a>
    </li>
    <li class="">
        <a href="img/gallery/gallery4.jpg" class="">
            <img src="img/gallery/gallery4.jpg" alt="image 1" class="img">
        </a>
    </li>
    <li class="">
        <a href="img/gallery/gallery5.jpg" class="">
            <img src="img/gallery/gallery5.jpg" alt="image 1" class="img">
        </a>
    </li>
</ul>

最佳答案

您需要处理来自 querySelectorAll() 的类似数组的节点列表:

var gallery = document.querySelectorAll('.gallery a');

gallery.forEach(function(item) {
  item.onclick = function(event){
    event.preventDefault();
    console.log('onclick');
  };
});

关于javascript - 使用 javascript queryselectorall 而不是 jquery 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42468341/

相关文章:

javascript - 使用 $.when 等待函数完成

javascript - 获取页面上具有类的所有 div 的 ID - jquery

javascript - 双击空白处,如何防止不被选中?

javascript - Angular 2 事件发射器

jquery - slider 不适用于 div 但适用于图像

javascript - 使用 Emoji One Area 在 div 中显示表情符号

jquery - $这个:eq(2) is not working in a plugin

jquery选择器问题: do something only if all elements are hidden

Javascript 二维数组问题 - 所有元素都是最终条目的副本

javascript - 通过 Ajax 动态加载时多个脚本之间的可见性