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

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

此關鍵字和 addEventHandler 函數的問題

此關鍵字和 addEventHandler 函數的問題

翻翻過去那場雪 2024-01-22 14:53:16
我在 JS 中向 HTML 元素添加類時遇到問題。我想創建某種手風琴,但我不知道我做錯了什么(首先我應該說我對 JS 沒有太多經驗)。我正在使用的 HTML 元素如下所示:<div class="account_content_orders_list_order">  <div class="account_content_orders_list_order_element"></div>  <div class="account_content_orders_list_order_element"></div>  <div class="account_content_orders_list_order_element"></div>  <div class="account_content_orders_list_order_element"></div>  <div class="account_content_orders_list_order_element"></div>  <div class="account_content_orders_list_order_element"></div>  <div class="account_content_orders_list_order_element"></div></div>這是我的 JS 腳本:  let orders = document.getElementsByClassName("account_content_orders_list_order");  for (let k = 0; k < orders.length; k++) {    orders[k].addEventListener("click", () => {      this.classList.add("active_order");    });  }但是當我單擊 HTML 元素時,我在 Chrome 控制臺中收到錯誤消息:我想檢查這個關鍵字是否指向正確的 DOM 元素,所以我添加了console.log(this); 到我上面向您展示的循環,但我現在知道這個指向window對象的關鍵字存在某種問題,我不知道為什么。有人可以提供任何建議嗎?我沒主意了。抱歉,如果它重復,我找不到任何與我的主題類似的主題。
查看完整描述

1 回答

?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

箭頭函數沒有自己的this. 使用標準函數:


orders[k].addEventListener("click", function () {

    this.classList.add("active_order");

});

如果你真的想使用箭頭功能,你可以使用event.currentTarget:


orders[k].addEventListener("click", event => {

    event.currentTarget.classList.add("active_order");

});

addEventListener()注入event.currentTarget為this.


查看完整回答
反對 回復 2024-01-22
  • 1 回答
  • 0 關注
  • 138 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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