Скрыть div по id

288
15 ноября 2021, 03:40

На странице есть несколько блоков div с классами trading__buy-nav и каждый блок имеет уникальный id. Если один этих дивов активен, то к нему добавляется класс acive, получается trading__buy-nav active Как можно сделать, чтобы если какой-то определенный див активен(определенность определяет его id), то скрываются другие блоки, с другим классом и тоже с уникальным айди. Т.е есть 2 блока

<div class="trading__buy-nav active"name="odin" type="radio" id="CoinVal_1" checked="checked" onclick='CoinValChange("CoinVal_1");' />1</div>
<div class="trading__buy-nav" name="odin" type="radio" id="CoinVal_2" onclick='CoinValChange("CoinVal_2");' />2</div>

Если активен первый блок с id CoinVal_1, то нужно скрыть 2 блока

<div class="trading__market-table-row" id="CoinProd_1" name="CoinID_1" onclick='ChangeCoinProdBuySell("CoinID_1");'>
<div class="trading__market-table-row" id="CoinProd_2" name="CoinID_2" onclick='ChangeCoinProdBuySell("CoinID_2");'>

Если же активен 2ой блок, то скрыть таких же 2 блока, но с другими id

Answer 1

Есть необходимость логически все связать и описать зависимость имен id и связанных с ними групп элементов. Так же надо выбрать алгоритм скрытия/отображения. Вот что-то вроде базового варианта.

Управление
У вас есть управляющие элементы от которых вы берете состояние и на которые весите прослушивание событий. Если два верхних элемента в вашем примере чекбоксы (тег div у чекбокса заменить на input) то состояние лучше взять через checked.

Отображение
Есть элементы для отображения информации - показывать/скрывать их удобно через класс active. В CSS прописываете соответствующие свойства (display block/none иди visibility hidden/visible). Элемент с классом 'active' - показываем, без класса скрываем.

По событию onClick на чекбоксе по выбранному алгоритму на элементы отображения функция добавляет класс 'active' или убирает его. Для этого можно использовать:

element.classList.add('active')
element.classList.remove('active')
element.classList.toggle('active')

В примеры скрытия/отображения добавил чекбоксы: https://codepen.io/ilya-lokalin/pen/qBBgWjB

Алгоритм
Вам необходимо решить что будет происходить по событию и сделать набросок последовательности возможных событий:



- событие onClick скрывает/показывает логически связанные элементы (как на рисунке выше) - каждый чекбокс работает как переключатель для своей группы элементов;



- одна группа скрывается, другая отображается - тут подойдет настройка инпутов как радиокнопок. Во включенном состоянии может быть только одна группа элементов.

Важно.

Теперь, чтобы более конкретно ответить на ваш вопрос, необходимо знать предполагаемый вами алгоритм и зависимость элементов отображения от управляющих элементов. Берете вы уже готовый проект, с организованной структурой или делаете новый.

И если есть возможность избежать использование ID, лучше их не использовать. События можно повесить на классы, отображать тоже по состоянию классов.

READ ALSO
Изменение CSS style через JS

Изменение CSS style через JS

Хочу по нажатию на стрелки изменять размер картинки на определённое число pxНо вместо этого срабатывает лишь раз и больше не меняется

263
Проверка состояния бота discord

Проверка состояния бота discord

Хочу сделать бота который будет отслеживать состояние других ботовКак можно сделать проверку состояния другого бота или пользователя (Онлайн...

208
фильтрация массива другим массивом

фильтрация массива другим массивом

Есть два массиваВ одном массиве содержатся выбранные пользователем теги (жанры кино), а во втором массиве находятся сами фильмы

317
Как присвоить переменной js цену товара

Как присвоить переменной js цену товара

На странице выведено несколько товаров в каталоге (Woocommerce), мне нужно на этой же странице вывести по клику на "Добавить в корзину" цену именно...

334