Mi html:
<label for="answer_1" class="answer_label"><input type="radio" id="answer_1">Answer</label> <label for="answer_2" class="answer_label"><input type="radio" id="answer_2">Answer</label> <label for="answer_3" class="answer_label"><input type="radio" id="answer_3">Answer</label>Mi JS:
var answers = ["Answer_1","Answer_2","Answer_3"]; var answer_labels = document.querySelectorAll(".answer_label"); for (var i = 0; i < answers.length; i++){ answer_labels[i].innerText = answers[i] }Cuando quiero establecer texto en mis etiquetas, aparece el error:
TypeError no capturado: no se pueden establecer propiedades de indefinido (configurando 'innerText')
Tiene un error de sintaxis en el bucle for.
cambiar for (var i = 0; i < .length; i++)
a for (var i = 0; i < answer_labels.length; i++)
var answers = ["Answer_1","Answer_2","Answer_3"] var answer_labels = document.querySelectorAll(".answer_label"); for (var i = 0; i < answer_labels.length; i++){ answer_labels[i].innerText = answers[i]; } <label for="answer_1" class="answer_label"><input type="radio" name="choice" id="answer_1">Answer</label> <label for="answer_2" class="answer_label"><input type="radio" name="choice" id="answer_2">Answer</label> <label for="answer_3" class="answer_label"><input type="radio" name="choice" id="answer_3">Answer</label>Si solo desea reemplazar las etiquetas sin destruir las entradas del botón de radio en el interior, tal vez debería hacer algo como esto:
var answers = ["Answer_1","Answer_2","Answer_3"] document.querySelectorAll(".answer_label").forEach((l,i)=>{ l.innerHTML=l.querySelector("input").outerHTML+answers[i]; }) <label for="answer_1" class="answer_label"><input type="radio" name="choice" id="answer_1">Answer</label> <label for="answer_2" class="answer_label"><input type="radio" name="choice" id="answer_2">Answer</label> <label for="answer_3" class="answer_label"><input type="radio" name="choice" id="answer_3">Answer</label>el problema fue que no especifiqué " <!DOCTYPE html>" en el archivo html...