@denism300

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

Есть конструкция
<div class="form-fields">
    <div class="wrapper-from-field step-one active">
        <label class="input-radio step-one">
            <input type="radio" class="build-calc-form-step-one-radio" name="step-one" value="oneFloor" checked>
        </label>
    </div>
    <div class="wrapper-from-field step-one">
        <label class="input-radio step-one">
            <input type="radio" class="build-calc-form-step-one-radio" name="step-one" value="mansarda">
        </label>
    </div>
    <div class="wrapper-from-field step-one">
        <label class="input-radio step-one">
            <input type="radio" class="build-calc-form-step-one-radio" name="step-one" value="twoFloor">
        </label>
    </div>
</div>


как при выборе радиокнопки переключать родителю wrapper-from-field класс active?
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const containerSelector = '.form-fields';
const itemSelector = `${containerSelector} .wrapper-from-field`;
const activeClass = 'active';
const toggle = item => item
  .closest(containerSelector)
  .querySelectorAll(itemSelector)
  .forEach(n => n.classList.toggle(activeClass, n === item));

document.querySelectorAll(itemSelector).forEach(function(n) {
  n.addEventListener('change', this);
}, e => toggle(e.currentTarget));

// или

document.addEventListener('change', e => {
  const item = e.target.closest(itemSelector);
  if (item) {
    toggle(item);
  }
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы