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

239
Vistas
document.getElementById("spanid").innerHTML no funciona

Soy bastante nuevo en javascript, por lo que realmente no puedo encontrar lo que está mal en mi código. A continuación se muestra el código:

 <script language="javascript"> var x = parseInt(prompt("Enter the first number.","")); var y = parseInt(prompt("Enter the second number.","")); var z = prompt("Enter an operation.",""); var total = 0; switch (z) { case "1": case "+": case "add": case "addition": case "sum": var total = x + y; break; case "2": case "-": case "sub": case "subtract": case "subtraction": case "diff": case "difference": var total = x - y; break; case "3": case "x": case "*": case "mult": case "multiply": case "multiplication": case "prod": case "product": var total = x * y; break; case "4": case "/": case "divide": case "division": case "quo": case "quotient": if (y == 0) { document.getElementById("total1").innerHTML = "Error. You cannot divide by 0." } else { var total = x / y; } break; default: document.getElementById("total1").innerHTML = "There is something wrong with one of your inputs. Please reload the page." } if (isNaN(total) == false) { document.getElementById("total1").innerHTML = total }

Cuando ingreso 0 en el mensaje de la variable y, no muestra "Error. No se puede dividir por 0". y en su lugar muestra solo 0. Hay un lapso total con la identificación de total1.

La identificación de intervalo era anteriormente "total", así que la cambié a "total1" pero aún no funcionó.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Su código funciona, pero el HTML interno de su span se reemplaza por este bloque:

 if (isNaN(total) == false) { document.getElementById("total1").innerHTML = total }

Como total se inicializa en 0 (y no cambia para operaciones como "dividir") isNaN(total) da como resultado false y eso escribe el total (que en este caso sigue siendo 0 ) en su elemento span .

Además de eliminar la palabra clave var (como se sugiere en la respuesta de JuanDeLasNieves), también debe inicializar el total como undefined en lugar de 0:

 var total = undefined;
about 4 years ago · Juan Pablo Isaza Denunciar

0

El problema es que declara var total = 0 en la cuarta línea de su código, y luego en cada uno de sus casos dentro de la declaración de switch , lo vuelve a declarar. Pero esas variables existen solo en el alcance de esa declaración.

Entonces, cuando su código llega al if final, verifica si isNan(0) == false , que no lo es, por lo que establece el HTML interno al valor de total .

Solución: elimine todas las palabras clave var dentro de la declaración de switch e intente nuevamente.

about 4 years ago · Juan Pablo Isaza Denunciar
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