Javascript 如何为嵌套元素添加一个事件侦听器

Javascript 如何为嵌套元素添加一个事件侦听器,javascript,event-handling,dom-events,addeventlistener,Javascript,Event Handling,Dom Events,Addeventlistener,我有下面的HTML: 第一 第二 第三 第四 第五 第六 使用(在DOM树中较高位置的元素上设置事件处理程序,并允许树中较低位置的元素中的事件冒泡并被捕获),我们可以在body级别只设置一个事件处理程序,然后根据符合条件的元素集合检查冒泡事件的实际源 有关更多信息,请参阅内联注释: //在上设置事件侦听器并等待其他 //事件的泡沫到它。 document.body.addEventListener(“单击”),函数(evt){ //获取作为元素后代的所有元素的数组 让matches=Arr

我有下面的HTML:


第一
第二
第三
第四
第五
第六
使用(在DOM树中较高位置的元素上设置事件处理程序,并允许树中较低位置的元素中的事件冒泡并被捕获),我们可以在
body
级别只设置一个事件处理程序,然后根据符合条件的元素集合检查冒泡事件的实际源

有关更多信息,请参阅内联注释:

//在上设置事件侦听器并等待其他
//事件的泡沫到它。
document.body.addEventListener(“单击”),函数(evt){
//获取作为元素后代的所有元素的数组
让matches=Array.prototype.slice.call(document.querySelectorAll(“diva”);
//测试以查看数组是否包含已单击的数组
if(匹配。包括(evt。目标)){
log(“您单击了一个是a的后代的对象!”);
}
});

第一
第二
第三
第四
第五
第六

感谢@Scott Marcus的帮助。 我提交了答案,结果成功了。 我还发现了一种新的方法,使用.closest()。让我知道你的想法

document.addEventListener('click',(e)=>{
let currElm = e.target;
if (currElm.closest('div')) {
  console.log(currElm);
 }
});

嗯,如果你想要一个监听器,那么你就需要研究事件委托。@YannB实际上,我只是想到了一种更简单的方法。我将更新answer.document.addEventListener('click',(e)=>{let divA=document.queryselectoral('div a');divA.forEach((evt)=>{if(evt==e.target){console.log(e.target);}}});这是我想要的did@YannB请参阅更新的答案。我们甚至不需要循环。哦,哇,我甚至不知道包含的内容。非常感谢!