Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

238
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!