Javascript 有没有办法防止jQuery事件冒泡到特定的div?

Javascript 有没有办法防止jQuery事件冒泡到特定的div?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,在下面的代码中,当单击Hello时,是否有一种方法允许所有内容都接收事件(不包括div) HTML: JavaScript: window.addEventListener("load", function () { var els = document.querySelectorAll("*"); for (var i = 0; i < els.length; i++) { els[i].addEventListener("click", functi

在下面的代码中,当单击Hello时,是否有一种方法允许所有内容都接收事件(不包括
div

HTML:


JavaScript:

window.addEventListener("load", function () {
    var els = document.querySelectorAll("*");
    for (var i = 0; i < els.length; i++) {
        els[i].addEventListener("click", function () {
            alert('Click event fired on the ' + this.nodeName + ' element');
        });
    }
});
window.addEventListener(“加载”,函数(){
var els=document.queryselectoral(“*”);
对于(变量i=0;i
您可以使用
*:not(div)
选择器:

var els = document.querySelectorAll("*:not(div)")
您可以使用
*:not(div)
选择器:

var els = document.querySelectorAll("*:not(div)")

您已经添加了jQuery作为标记,为什么不使用它呢?下面是您的示例:

这应该不会冒泡,不再循环,jQuery为您提供了更清晰的方法来定位元素:)

更新

要收听所有的儿童节目,只需收听h1。。像这样:


您已经添加了jQuery作为标记,为什么不使用它呢?下面是您的示例:

这应该不会冒泡,不再循环,jQuery为您提供了更清晰的方法来定位元素:)

更新

要收听所有的儿童节目,只需收听h1。。像这样:



为什么要在windows上侦听。单击?为什么不使用jquery的点击处理程序并将其附加到您想要的范围内?我如何向点击处理程序本身添加逻辑?您问题中的CSS实际上是JavaScript。不仅如此,还有JavaScript与你手中的JavaScript不同。你想让body和html元素接收事件吗?@Matijs:是的,我想让其他所有元素都接收事件。为什么要在windows.click上监听?为什么不使用jquery的点击处理程序并将其附加到您想要的范围内?我如何向点击处理程序本身添加逻辑?您问题中的CSS实际上是JavaScript。不仅如此,还有JavaScript与你手中的JavaScript不同。你想让body和html元素接收事件吗?@Matijs:是的,我想让其他所有元素都接收事件。如果div有id,它会是,(“*:Not(#theIDofDiv)”?如果stackoverflow允许,我将选择此作为我的答案。如果div有id,它会是,(“*:not(#theIDofDiv)”?如果stackoverflow允许,我会选择这个作为我的答案。这并没有回答我的问题。我希望它传播时不包括一个div。我明白了。但是,我仍然觉得它使用jquery更干净,为什么不监听你想捕获的最上面的元素,它将捕获里面的所有元素,而且仍然更干净。我已经更新了答案。。只听h1..不?这没有回答我的问题。我希望它传播时不包括一个div。我明白了。但是,我仍然觉得它使用jquery更干净,为什么不听你想捕获的最上面的元素,它将捕获里面的所有元素,而且仍然更干净。我已经更新了答案..只听h1..不?
$(function(){
    $('span').click(function(){
        alert('Click event fired on the ' + this.nodeName + ' element');
    })
});