SaveLolliPoP
@SaveLolliPoP
1 / 0 = ∞

Как добавить класс элементу с определенным атрибутом?

Реализовываю своего рода Dropdown menu.
Есть кнопка с id="btnGroupDrop1" при нажатии на нее, должно раскрыться меню с атрибутом aria-labelledby="btnGroupDrop1".
Варианты раскрытия:
1) Добавление класса
2) Добавления стиля на прямую
Как реализовать не знаю. Прошу помочь без использования jquery и строго не судите, я активно изучаю js

<button id="btnGroupDrop1" type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown">
   Купить
</button>

<div class="dropdown-menu" aria-labelledby="btnGroupDrop1">
	<div>Купить</div>
	<div>Снять</div>
	<div>Сдать / Продать</div>
</div>


document.body.addEventListener("click", function(){ // Слежу за всей страницей
    var element = event.target, // Это элемент по которому мы кликаем
        elementsDropdown = document.getElementsByClassName('dropdown-menu'); // Это как раз и меню которое должно раскрыться
        
      for (var i = 0; i < elementsDropdown.length; i++) { // Перебераем класы, тк на странице может быть несколько подобных меню
        if (elementsDropdown[i].getAttribute('aria-labelledby') == element.id) { /*Находим элемент с классом dropdown-menu и атрибутом aria-labelledby равным id того элемента по которому мы кликнули*/
          console.log('yes');
          break; // Выходим из цикла
        }
      }
});
  • Вопрос задан
  • 247 просмотров
Решения вопроса 1
space2pacman
@space2pacman
Просто царь.
Ну для начала надо реализовать показ/скрытие меню
https://jsfiddle.net/space2pacman/354v5pu9/
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Qurban
@Qurban
Web developer
Вариант 1: используйте sizzle.js для манипуляции с DOM.
Вариант 2: судя по классам вы используете Bootstrap, а там есть готовый компонент
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
20 нояб. 2024, в 11:18
25000 руб./за проект
20 нояб. 2024, в 11:13
10000 руб./за проект