Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском.
Закрыт 2 года назад.
Я новичок в JS, интересует такой вопрос при клика на кнопку button в консоли возникает ошибка Uncaught TypeError: Cannot read property 'checked' of undefined При этом выводится в консоль правльное значение value Вопрос: почему ошибка в консоли?
HTML
<div>
<input class="myInput" id='radio-1' type="radio" value="1" name="radio">
<label for="radio-1">Radio-1</label>
</div>
<div>
<input class="myInput" id='radio-2' type="radio" value="2" name="radio" checked>
<label for="radio-2">Radio-2</label>
</div>
<div>
<input class="myInput" id='radio-3' type="radio" value="3" name="radio">
<label for="radio-3">Radio-3</label>
</div>
<button>Push</button>
Javascript
document.querySelector('button').onclick = (event) => {
let radio = document.querySelectorAll('input[type="radio"]');
for (let i = 0; i <= radio.length; i++) {
if (radio[i].checked) {
console.log(radio[i].value)
}
}
}
https://jsfiddle.net/p8ntL92y/4/
У вас не правильное условие в цикле используется. В JavaScript массивы нумеруются с 0, т.е. если у вас всего 3 элемента, то это будет от 0 до 2, но условие стоит i <= radio.length
, т.е. но будет пытаться получить элемент по индексу 3, которого не существует. Нужно использовать i < radio.length
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Написать функцию, которая принимает двузначное число и возвращает его в текстовом виде
Есть произвольных адрес в input1 (Россия, Московская область, Пушкино)