Estoy tratando de hacer un texto de entrada y un botón cuando se presiona se agregará a una lista ul, pero sigo teniendo este error en la consola y no sé por qué.
TypeError no detectado: btn.addEventListener no es una función en script.js:5
Código:
var text = document.getElementsByClassName('text'); var list = document.querySelector('.list'); var btn = document.getElementsByClassName('add'); btn.addEventListener("click", function(){ var content = document.createElement('li') content.innerText = text.value list.append(content) })Recibe este error porque getElementsByClassName devuelve una matriz de todos los elementos que tienen la clase dada. Para solucionar este error tienes dos opciones:
Haga add id en lugar de class y use getElementById para obtener ese elemento.
var btn = document.getElementById('add');
Si no desea add una identificación, sabemos que getElementsByClassName devuelve una matriz a la que puede acceder a los elementos dentro de esta matriz por su índice.
var btn = document.getElementsByClassName('add')[0];
En este caso, tenga en cuenta que el botón al que intenta acceder con add clase debe ser el primer elemento con este nombre de clase.