Значение this
зависит от того, как вызывается функция.
Функции обработчика событий будут иметь this
, равный элементу, с которым связан обработчик события.
Итакonclick="this /* is the element */"
Функции, вызываемые без контекста (например, если вы вызываете openMenuItemAll();
), имеют this
, равный undefined
(если вы не активируете строгий режим, в этом случае это будет window
).
В сторону: <a>
для ссылок . Не используйте его, если вы нигде не ссылаетесь. запрещено помещать <button>
внутри ссылки!
Сначала исправьте вашу разметку:
<ul class="menuList">
<li><button>›</button>Chicken Cordon Bleu</li>
Обратите внимание, что ссылка удалена,и я не передал class
, потому что вы можете вывести его из класса в самом списке.
Затем выберите все кнопки:
const buttons = document.querySelector(".menuList button");
Затем зациклите кнопки исвяжите вашу openMenuItemAll
функцию как обработчик событий.
Array.from(buttons).forEach(
button => button.addEventListener("click", openMenuItemAll)
);