Задать вопрос
@Nickzubov

Как переключать radio input кликая на ссылки на JQuery?

Есть несколько radio кнопок
<input type="radio" name="type" id="type1" value="" checked>
<input type="radio" name="type" id="type2" value="">
<input type="radio" name="type" id="type3" value="">
<input type="radio" name="type" id="type4" value="">


И так же есть 4 ссылки:
<a href="#" id="type11" class="active">1</a>
<a href="#" id="type22">2</a>
<a href="#" id="type33">3</a>
<a href="#" id="type44">4</a>


Как на jquery переключать radio в зависимости от класса active у ссылок?
Т.е если класс active на второй ссылке то radio так же на второй input переключается и так далее?
  • Вопрос задан
  • 221 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
О каких элементах и классе идёт речь:

const linkSelector = 'a[id][href="#"]';
const radioSelector = 'input[name="type"]';
const className = 'active';

Вот jquery:

const $links = $(linkSelector).click(function() {
  $radios.eq($links.index(this)).prop('checked', true).trigger('change');
});

const $radios = $(radioSelector).change(function() {
  $links.removeClass(className).eq($radios.index(this)).addClass(className);
});

А вот jquery нет:

const links = document.querySelectorAll(linkSelector);
links.forEach(function(n) {
  n.addEventListener('click', this);
}, function() {
  const radio = radios[Array.prototype.indexOf.call(links, this)];
  radio.checked = true;
  radio.dispatchEvent(new Event('change'));
});

const radios = document.querySelectorAll(radioSelector);
radios.forEach(function(n) {
  n.addEventListener('change', this);
}, function() {
  const index = Array.prototype.indexOf.call(radios, this);
  links.forEach((n, i) => n.classList.toggle(className, i === index));
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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