Фореат на массиве элементов DOM не удается с «невозможно прочитать свойства неопределенных», но для цикла работает - почJavascript

Форум по Javascript
Anonymous
Фореат на массиве элементов DOM не удается с «невозможно прочитать свойства неопределенных», но для цикла работает - поч

Сообщение Anonymous »

Я пытаюсь прикрепить слушателей событий к двум подобным элементам Dom (оба элемента существуют): < /p>

Код: Выделить всё

const signout = document.getElementById('logout');
const signoutMobile = document.getElementById('logout-mobile');

[signout, signoutMobile].forEach(el => {
if (el) {
el.addEventListener('click', async () => {
await logout();
});
}
});

async function logout() {
// fetch logic
}
< /code>
Тем не менее, это бросает ошибку в консоли браузера: < /p>
Uncaught TypeError: Cannot read properties of undefined (reading 'logout-mobile')
< /code>
Но когда я переписываю ту же логику, используя цикл для цикла, он работает отлично: < /p>
const elements = [signout, signoutMobile];
for (let i = 0; i < elements.length; i++) {
const el = elements[i];
if (el) {
el.addEventListener('click', async () => {
await logout();
});
}
}
Почему подход .foreach () бросает ошибку, в то время как цикл для работает нормально? />
  • logout declaration, 2)forEach
[*]
  • for, 2) logout declaration
[*]
  • logout declaration, 2) for

Doesn't work:

[*]
  • forEach, 2) logout declaration
< /ul>
Дополнительная информация: < /h3>

Оба фрагмента помещаются в один и тот же файл скрипта. /> Элементы с идентификаторов и идентификаторов и мобильными входами существуют в Dom. < /li>
Функция журнала объявлена ​​и работает должным образом.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... -undefined

Вернуться в «Javascript»