Столкнулся с ошибкой в консоли:
Cannot set property 'onclick' of undefined
Не пойму почему она возникает. Подскажите, пожалуйста. Вот пример где она возникает:
var choice = document.getElementsByClassName('choice');
for(var i = 0; i <= choice.length; i++){
choice[i].onclick = choosePar;
}
function choosePar(){
if(this.value == 'y'){
console.log('yes');
}
if(this.value == 'n'){
console.log('not');
}
}
<button class="choice" value="y">Да</button>
<button class="choice" value="n">Нет</button>
Не корректное условие в цикле. Надо так for(var i = 0; i < choice.length; i++). Не <=, а <. Если бы с 1 начал, то <=
Также не забывай про onload и domready
choice.length - кол-во элементов, в данном случае их 2, но массивы нумеруются с нуля. Т.е. у вас есть элементы с индексами 0 и 1 Вы делаете цикл с 0 до 2 включительно, и он перебирает 0, 1, 2. Когда вы обращаетесь к choice[2] - вы получаете undefined, а у него нет свойства onClick, что и выдаёт данную ошибку в консоли
Продвижение своими сайтами как стратегия роста и независимости