#javascript
#язык JavaScript
Вопрос:
У меня есть следующая функция JS, которая по щелчку мыши делает выбранный элемент выбранным(изменяет цвет фона) и должна заставить все остальные элементы удалить этот класс. Однако по какой-то причине при нажатии класс «категория меню-наведение» не удаляется.
function GetData(allMenuItems, theCategoryId) { // Remove selected class on other Elements allMenuEl = document.querySelectorAll('menu-category'); for (var i = 0; i lt; allMenuEl; i ) { allMenuEl[i].classList.remove("menu-category-hover"); } ..... // On element Click var hoverEl = document.getElementById("menu_cat_" theCategoryId); hoverEl.classList.add("menu-category-hover"); } lt;div class="menu-category menu-category-hover" onclick="GetData(, 13)" id="menu_cat_13"gt; lt;img src="/images/85783_burger.png" class="menu-home-image-img"gt; lt;p class="menu-home-name"gt;Burgerslt;/pgt; lt;divgt;
Комментарии:
1. Разве так не должно быть
document.querySelectorAll('.menu-category')
? (обратите внимание на точку).2. Я забыл . длина в петле 🙁
3. Нет необходимости передавать
theCategoryId
, так как он уже находится внутри идентификатора элемента.
Ответ №1:
Проверьте это
function GetData(allMenuItems, theCategoryId) { // Remove selected class on other Elements allMenuEl = document.querySelectorAll('.menu-category'); //lt;--- class indicator `.` for (var i = 0; i lt; allMenuEl.length; i ) { //lt;-- not added allMenuEl.length allMenuEl[i].classList.remove("menu-category-hover"); } ..... // On element Click var hoverEl = document.getElementById("menu_cat_" theCategoryId); hoverEl.classList.add("menu-category-hover"); }