@MegaPuxapb

Как достать текст label, у чекнутой радиокнопки?

<div class="radio_wrap">
    <input type="radio" id="radio1" name="radio">
    <label for="radio1">text1</label>

    <input type="radio" id="radio2" name="radio">
    <label for="radio1">text2</label>
</div>
  • Вопрос задан
  • 180 просмотров
Решения вопроса 2
lamer350
@lamer350
กำลังสูงสุด
https://codepen.io/anon/pen/GBvVbR
Только у вас еще ошибка в html, label for 2 должно быть
Ответ написан
0xD34F
@0xD34F Куратор тега JavaScript
О каких радиокнопках идёт речь:

const radioSelector = '.radio_wrap input[type="radio"]';

Как, имея радиокнопку, можно получить содержимое её label'а:

const getLabel = el => document.querySelector(`[for="${el.id}"]`).textContent;
// или
const getLabel = el => el.nextElementSibling.innerText;
// или
const getLabel = el => el.labels[0].innerHTML;

Получаем, по событию change:

// назначаем обработчик события каждой радиокнопке индивидуально
document.querySelectorAll(radioSelector).forEach(function(n) {
  n.addEventListener('change', this);
}, e => console.log(getLabel(e.target)));

// или, можно сделать делегированный обработчик, где будет проверка, откуда пришло событие
document.addEventListener('change', ({ target: t }) => {
  if (t.matches(radioSelector)) {
    console.log(getLabel(t));
  }
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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