Mayheptad Ответов: 1

Как добавить прослушиватель событий к трем элементам с одним и тем же классом в HTML-документе


привет кодерам в доме, я пытался добавить прослушиватель событий mouseover к тегу 3 anchor в моем HTML-коде.
но я не знаю, почему петля, кажется, не работает.
если я сделаю[0] или[1] или[2], Если я наведу курсор мыши на тег привязки и проверю элемент, он будет работать нормально. он добавит атрибут id к тегу.
но когда я пытаюсь зациклить его и использовать индекс цикла., который является [i]. Я получил ошибку в консоли. что элемент не определен.
когда я пытался использовать цикл while, он казался бесконечным циклом без конца, я не понимал, что происходит.

Что я уже пробовал:

<h2>
  <a href="https://www.facebook.com" class="download-wait" target="_blank" data-href="https://www.google.com">
  click me now
  <a/>
  <a href="https://www.facebook.com" class="download-wait" target="_blank" data-href="https://www.google.com">
  click me now
  <a/>
  <a href="https://www.facebook.com" class="download-wait" target="_blank" data-href="https://www.google.com">
  click me now
  <a/>
  </h2>


 for(var i = 0; i <= document.querySelectorAll(".download-wait").length; i++){
   var a = document.getElementsByClassName("download-wait");
a[i].addEventListener("mouseover", function() {
  a[i].id = "download";
})
}


var i = 0;
while(i <= document.querySelectorAll(".download-wait").length){
  var a = document.getElementsByClassName("download-wait");
a[i].addEventListener("mouseover", function() {
 a[i].id = "download";
 i++;
});
}

Richard MacCutchan

- У меня ошибка."
Затем, пожалуйста, обновите свой вопрос и покажите точное сообщение об ошибке и строку кода, на которую оно ссылается. Пожалуйста, не ждите, что люди догадаются, что вы видите.

1 Ответов

Рейтинг:
2

Pete O'Hanlon

Ты пытаешься зациклиться на чем-то неправильном. Попробуйте вместо этого что-нибудь вроде этого:

var i = 0;
var a = document.getElementsByClassName("download-wait");
for (var i = 0; i < a.length; i++) {
  a[i].addEventListener("mouseover", function() { a[i].id = "download"; });
}
Другими словами, вам нужно было перебирать элементы, из которых вы вернулись getElementsByClassName вместо.