Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Легкий вопрос про привязку событий (https://javascript.ru/forum/dom-window/82783-legkijj-vopros-pro-privyazku-sobytijj.html)

Самовар 04.07.2021 21:55

Легкий вопрос про привязку событий
 
Не могу разобраться в вобщем то с элементарной вещью, просто завис. Есть несолько Li.

<ul class="menu">
        <li class="menu-item">Один</li>
        <li class="menu-item">Два</li>
        <li class="menu-item">Три</li>
        <li class="menu-item">Четыре</li>
        <li class="menu-item">Пять</li>
        <li class="menu-item">Шесть</li>
    </ul>


Кидаю их коллекцию квери селектрором и вешаю обработку на клик

const menuBtn = document.querySelectorAll(".menu-item");

function menuBtnClick() {
    alert(this.InnerHTML);
}

for (let i = 0; i <= menuBtn.length; i++) {
    menuBtn[i].onclick = menuBtnClick;
}


и вылазит ошибка Cannot set property 'onclick' of undefined
По идее по щелчку на лишку должен вылазить текст внутри неё. Вылазит ундевайнед.
Вопроса два. Первый, откуда берется эта ошибка. Второй (полагаю является следствием первого) почему вместо текста лишки вылазит ундефайнед

рони 04.07.2021 21:57

Цитата:

Сообщение от Самовар
Что ему не хватает?

не бывает элементов с индексом равным length!!!
Цитата:

Сообщение от Самовар
for (let i = 0; i <= menuBtn.length; i++)


Самовар 04.07.2021 22:06

вот уж да, столько времени потеряно зря. Большое спасибо. Ошибка ушла, но при щелчке так же и вылазит ундефанед вместо текста лишки

рони 04.07.2021 22:16

Самовар,
исправьте ошибку в 4 строке, js регистрозависимый язык!

Самовар 04.07.2021 22:18

спасибо :write:


Часовой пояс GMT +3, время: 00:18.