Estoy haciendo un ejercicio de Javascript para aprender Switch Statement y no puedo encontrar dónde está el error (en realidad, no puedo entender por qué está devolviendo "indefinido"). He intentado:
var myNumber = document.querySelector(".myNumber").value;pero no funcionó. Intenté insertar un caso 0 , no funcionó.
var printNumber = document.getElementById("numresult").innerHTML = printNumber; var myNumber = document.querySelector(".myNumber").textContent; switch(myNumber) { case 1: printNumber = "You got 1"; break; case 2: printNumber = "You got 2"; break; case 3: printNumber = "You got 3"; break; case 4: printNumber = "You got 4"; break; case 5: printNumber = "You got 5"; break; case 6: printNumber = "You got 6"; break; case 7: printNumber = "You got 7"; break; case 8: printNumber = "You got 8"; break; case 9: printNumber = "You got 9"; break; default: printNumber = "Oops"; } <p class="myNumber">1</p> <p id="numresult"></p>Estás comparando cadenas con números.
value devuelve una cadena y el switch funciona con una comparación estricta === .
Finalmente, debe asignar el valor al elemento.
document.getElementById("numresult").innerHTML = printNumber; var printNumber, myNumber = +document.querySelector(".myNumber").textContent; // ^ unary plus to convert string to number switch (myNumber) { case 1: printNumber = "You got 1"; break; case 2: printNumber = "You got 2"; break; case 3: printNumber = "You got 3"; break; case 4: printNumber = "You got 4"; break; case 5: printNumber = "You got 5"; break; case 6: printNumber = "You got 6"; break; case 7: printNumber = "You got 7"; break; case 8: printNumber = "You got 8"; break; case 9: printNumber = "You got 9"; break; default: printNumber = "Oops"; } document.getElementById("numresult").innerHTML = printNumber; <p class="myNumber">1</p> <p id="numresult"></p>