Я хочу выбрать элемент списка случайно, но не могу - PullRequest
0 голосов
/ 19 мая 2018

Я бы хотел добавить событие клика в свой список товаров.Это TO-DO-LIST, поэтому каждый раз, когда я щелкаю по нему, элемент списка должен иметь стиль сквозного перехода.Однако я не могу понять это правильно.Консоль всегда говорит:

Uncaught TypeError: togList.addEventListener is not a function

var togList = document.getElementsByTagName("li");

function togglesOnOff() {
        togList.classList.toggle("done");
}

togList.addEventListener("click", togglesOnOff);

1 Ответ

0 голосов
/ 19 мая 2018

Вы получаете сообщение об ошибке, потому что getElementsByTagName не возвращает элемент, а возвращает набор элементов .

, поэтому вам нужно выполнить цикл по коллекции:

var togList = document.getElementsByTagName("li");

function togglesOnOff() {
  this.classList.toggle("done");
}

Array.from(togList).forEach(item => item.addEventListener("click", togglesOnOff));
.done {
  background: red;
}
<ul>
  <li>Item one</li>
  <li>Item two</li>
  <li>Item three</li>
</ul>

Вам также потребуется изменить функцию, чтобы использовать текущий элемент для переключения класса.Для этого мы просто изменим togList на this.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...