cuando estoy seleccionado el la mascota me aparece esto en la consola: <em>Uncaught TypeError: Cannot read properties of null (reading ‘c...

Juan Eduardo Rodriguez Garcia

Juan Eduardo Rodriguez Garcia

Pregunta
student
hace 4 años

cuando 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() }
2 respuestas
    José Arbey López Martínez

    José Arbey López Martínez

    student
    hace 4 años

    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("
    Aquí
    ");
    con lo que va
    const hipodoge = new Mokepon("
    Aquí
    ", "./assets/img/hipodoge.png", 5);
    mas arriba en el código. Puede ser que hayan fallado las mayúsculas.

    Sofía Ferrero

    Sofía Ferrero

    student
    hace 4 años

    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ó.

Curso Gratis de Programación Básica

Curso Gratis de Programación Básica

Domina los fundamentos de programación con JavaScript, HTML y CSS creando un videojuego desde cero. Aprende lógica, estructuras, manipulación del DOM y bases de desarrollo web y backend.

Curso Gratis de Programación Básica
Curso Gratis de Programación Básica

Curso Gratis de Programación Básica

Domina los fundamentos de programación con JavaScript, HTML y CSS creando un videojuego desde cero. Aprende lógica, estructuras, manipulación del DOM y bases de desarrollo web y backend.