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

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

無法使用javascript獲取數組中當前單擊元素的索引

無法使用javascript獲取數組中當前單擊元素的索引

aluckdog 2021-10-29 10:52:48
這是我的 HTML 代碼var link = document.getElementsByClassName("link");for (i = 0; i < link.length; i++) {  link[i].addEventListener("click", click);  function click() {    console.log(link.indexOf(this));  }}<div class="links">  <ul>    <li>      <div class="hole-counter"><span></span></div><a class="link">Home</a>    </li>    <li>      <div class="hole-counter"><span></span></div><a class="link">About</a>    </li>    <li>      <div class="hole-counter"><span></span></div><a class="link">Gallery</a>    </li>    <li>      <div class="hole-counter"><span></span></div><a class="link">Contact</a>    </li>  </ul></div>這是 javascript 代碼我在控制臺中收到此錯誤 Uncaught TypeError: link.indexOf is not a function at HTMLAnchorElement.click (index.html:97)
查看完整描述

3 回答

?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

你代碼中的鏈接變量是HTMLCollection,使用前需要將其轉換為數組 indexOf


你可以這樣做


const links = [...document.getElementsByClassName("link")];

links.forEach(link => link.addEventListener("click", click));


function click() {

  console.log(links.indexOf(this))

}


查看完整回答
反對 回復 2021-10-29
?
牧羊人nacy

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

您的鏈接變量不是數組,因此您不能對其調用 indexOf()。您必須首先將鏈接轉換為數組。 var link = Array.from(document.getElementsByClassName("link"));


查看完整回答
反對 回復 2021-10-29
?
一只萌萌小番薯

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

您的鏈接變量只是一個變量,而 indexOf 函數專門用于數組。因此,您應該首先將變量轉換為數組。您可以通過將其聲明為數組或之后將其轉換為數組來實現。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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