HTML
<div class="block__buttons">
<button class="info__button">кнопка 1</button>
<button class="info__button">кнопка 2</button>
<button class="info__button">кнопка 3</button>
<button class="info__button">кнопка 4</button>
и еще 20 кнопок
</div>
<div class="block__info">
<div class="info__block display-none">Информация о кнопке 1</div>
<div class="info__block display-none">Информация о кнопке 2</div>
<div class="info__block display-none">Информация о кнопке 3</div>
<div class="info__block display-none">Информация о кнопке 4</div>
и еще 20 текстов о других кнопках
</div>
логика: при клике на кнопку 1 нужно чтобы к div.info__block в котором информация о кнопке 1, убрался класс display-none. Эта логика должна быть реализована без использования id. И так далее кнопка 2 блок 2, кнопка 3 блок 3. Блоков и кнопок много, поэтому плодить одинаковый код через использование id не хочется
И я не понимаю как связать кнопку и блок без id?
Пожалуйста подскажите как подступиться к проблеме
var buttons = document.querySelectorAll(".block__buttons .info__button");
var blocks = document.querySelectorAll(".block__info .info__block");
buttons.forEach((btn, index) => {
btn.addEventListener("click", function(e) {
blocks.forEach(bl => bl.classList.add("display-none"));
blocks[index].classList.remove("display-none");
});
});
.display-none {
display: none;
}
<div class="block__buttons">
<button class="info__button">кнопка 1</button>
<button class="info__button">кнопка 2</button>
<button class="info__button">кнопка 3</button>
<button class="info__button">кнопка 4</button> и еще 20 кнопок
</div>
<div class="block__info">
<div class="info__block display-none">Информация о кнопке 1</div>
<div class="info__block display-none">Информация о кнопке 2</div>
<div class="info__block display-none">Информация о кнопке 3</div>
<div class="info__block display-none">Информация о кнопке 4</div>
и еще 20 текстов о других кнопках
</div>
Ребята вот мой ответ на вопрос:
<div class="block__buttons">
<button class="info__button" id="1">кнопка 1</button>
<button class="info__button" id="1">кнопка 2</button>
<button class="info__button" id="1">кнопка 3</button>
<button class="info__button" id="1">кнопка 4</button>
и еще 20 кнопок
</div>
<div class="block__info">
<div class="info__block display-none" data-id="1">Информация о кнопке 1</div>
<div class="info__block display-none" data-id="2">Информация о кнопке 2</div>
<div class="info__block display-none" data-id="3">Информация о кнопке 3</div>
<div class="info__block display-none" data-id="4">Информация о кнопке 4</div>
и еще 20 текстов о других кнопках
</div>
const listOaeButtons = document.getElementsByClassName('info__button');
function show(e) {
let elem = e.target.id;
let text = document.getElementsByClassName('info__block-hotel');
for (let i=0; i < text.length; i++) {
if (text[i].getAttribute('data-id') == elem) {
text[i].classList.remove('display-none');
}
else { text[i].classList.add('display-none')}
}
}
for (let i=0; listOaeButtons.length; i++) {
listOaeButtons[i].addEventListener('click', show, false);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
В проекте имеется несколько section'овОдин из них выглядит следующим образом:
Собственно имеется функция с стороннего ресурса, пример ниже, но у нее непонятная конструкция, как её понимать, и можно ли как то вызвать эту...
В таблице есть колонка доктор и колонка назначение лекарств для каждого пациента