亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

具有相同父級的所有元素的一個事件偵聽器,即使有些被放置在代表多個節點的變量中

具有相同父級的所有元素的一個事件偵聽器,即使有些被放置在代表多個節點的變量中

智慧大石 2021-10-14 17:05:07
好的,我想組織我的腳本并對所有事件使用 1 個事件偵聽器,因為這些事件的所有元素都屬于一個父級,即頁面的導航標簽,但我通過 querySelectorAll 收集了其中一些元素,這意味著它們現在是數組,對象的集合,我希望它的邏輯是這樣的:const topNav = document.querySelector(".topNav");const topNavChildrenLis = document.querySelectorALL(".topNav li");topNav.addEventListener("click", (event)=>{if(event.target == topNavChildrenLis){//do this and that} //and so on and so forth for other elements });我知道這個表達式“event.target == topNavChildrenLis”不起作用,我也嘗試通過做這樣的事情來返回數組的節點“event.target == topNavChildrenLis.forEach((nodes)=>{ return nodes; } )”而且它也不起作用,有什么辦法可以做到這一點嗎?謝謝你的幫助:)
查看完整描述

1 回答

?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

首先,制作const topNavChildrenLis = document.querySelectorALL(".topNav li");和數組的結果,以便您可以使用數組方法

const topNavChildrenLis = Array.from(document.querySelectorAll(".topNav li"));

或者

const topNavChildrenLis = [ ...document.querySelectorAll(".topNav li") ];

現在你可以做這樣的事情

let tgt = topNavChildrenLis.find(el => el === event.target);

現在tgt只有當它存在于數組中時才會是 event.target


查看完整回答
反對 回復 2021-10-14
  • 1 回答
  • 0 關注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號