Juan Eduardo Rodriguez Garcia
Preguntacuando estoy seleccionado el la mascota me aparece esto en la consola: Uncaught TypeError: Cannot read properties of null (reading ‘checked’)
at HTMLButtonElement.seleccionarMascotaJugador (mokepon.js:103:23)
¿como puedo llegar a solucionarlo?
function seleccionarMascotaJugador(){ sectionSelecionarMascota.style.display = "none" sectionSelecionarAtaque.style.display = "flex" if (inputHipodoge.checked) { spanMascotaJugador.innerHTML = "Hipodoge" } else if (inputCapipepo.checked) { spanMascotaJugador.innerHTML = "Capipepo" } else if (inputRatigueya.checked) { spanMascotaJugador.innerHTML = "Ratigueya" } else { alert('Selecciona una mascota') } seleccionarMascotaEnemigo() }
José Arbey López Martínez
Eso es porque javascript trata de leer la propiedad "checked" de algún input que no encontró. Puedes revisar si tus ids coinciden con la propiedad nombre de tus objetos Mokepon. En la creación de tus objetos ...
const hipodoge = new Mokepon("Hipodoge", "./assets/img/hipodoge.png", 5); const capipepo = new Mokepon("Capipepo", "./assets/img/capipepo.png", 5); const ratigueya = new Mokepon("Ratigueya", "./assets/img/ratigueya.png", 5); mokepones.push(hipodoge, capipepo, ratigueya);
En el ciclo para agregarlos en el html ...
mokepones.forEach((mokepon) => { opcionDeMokepones = `<input type="radio" name="mascota" id="${mokepon.nombre}"/> <label class="tarjeta-de-mokepon" for="${mokepon.nombre}"> <p>${mokepon.nombre}</p> <img src="${mokepon.foto}" alt="${mokepon.nombre}" /> </label>`; tarjetasMokepon.innerHTML += opcionDeMokepones; });
Y en la selección por id ...
inputHipodoge = document.getElementById("Hipodoge"); inputCapipepo = document.getElementById("Capipepo"); inputRatigueya = document.getElementById("Ratigueya");
Debería de coincidir lo que va
document.getElementById("");const hipodoge = new Mokepon("", "./assets/img/hipodoge.png", 5);Sofía Ferrero
Me pasaba lo mismo y en la clase anterior en la sección de preguntas alguien me ayudó a resolverlo. Era simplemente el slash de cierre del input que estaba pegado al Template literal en la función de iniciarJuego, con un espacio se solucionó.
