Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

213
Vistas
¿Por qué this.id no funciona en mi caso Switch...?

El código debería mostrar la trama de la portada del libro en el que hace clic mientras cambia el fondo a una portada alternativa del libro, pero no hace nada. Tengo un código de respaldo que funciona, pero me gustó más esta solución.

Mi código js:

 function mostraTrama(){ try{ switch(this.id){ case "TramaVdR": nodoTramaVdR.setAttribute = ("class", "TramaScelta"); nodoTramaPdL.setAttribute = ("class", "TramaNonScelta"); nodoTramaG.setAttribute = ("class", "TramaNonScelta"); document.body.style.backgroundImage = "url('../Images/way_of_kings_bg.jpg')"; break case "TramaPdL": nodoTramaVdR.setAttribute = ("class", "TramaNonScelta"); nodoTramaPdL.setAttribute = ("class", "TramaScelta"); nodoTramaG.setAttribute = ("class", "TramaNonScelta"); document.body.style.backgroundImage = "url('../Images/words_of_radiance_bg.jpg')"; break case "TramaG": nodoTramaVdR.setAttribute = ("class", "TramaNonScelta"); nodoTramaPdL.setAttribute = ("class", "TramaNonScelta"); nodoTramaG.setAttribute = ("class", "TramaScelta"); document.body.style.backgroundImage = "url('../Images/oathbringer_bg.jpg')"; break } } catch(e){ alert("mostraTrama " + e); } } function gestoreLoadRomanzi(){ try { nodoTramaViaDeiRe = document.getElementById("TramaViaDeiRe"); nodoTramaParoleDiLuce = document.getElementById("TramaParoleDiLuce"); nodoTramaGiuramento = document.getElementById("TramaGiuramento"); nodoTramaVdR = document.getElementById("TramaVdR"); nodoTramaPdL = document.getElementById("TramaPdL"); nodoTramaG = document.getElementById("TramaG"); nodoTramaViaDeiRe.onclick = mostraTrama; nodoTramaParoleDiLuce.onclick = mostraTrama; nodoTramaGiuramento.onclick = mostraTrama; } catch ( e ) { alert("gestoreLoadRomanzi " + e); } }

Los tres comienzan con class = "TramaNonScelta", que tiene display: none, y al hacer clic deben cambiar a class = "TramaScelta", que tiene display: inline. Todos los ID coinciden con los que tienen en el documento HTML.

Mi forma alternativa de funcionamiento es tener una función separada para cada libro en lugar de una sola para todos ellos.

EDITAR: También tengo un código muy similar para otro programa que en lugar de usar .setAttribute usa .innerHTML y funciona sin problemas (pero mi profesor no quiere que usemos .innerHTML en este proyecto)

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda