I’m doing a Javascript exercise to learn Switch Statement and I can’t find where is the error (actually I can’t understand why it’s returning "undefined").
I’ve tried:
var myNumber = document.querySelector(".myNumber").value;
but didn’t work.
I’ve tried insert a case 0, it didn’t work.
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>
>Solution :
You are comparing strings with numbers.
value returns a string and switch works with strict comparison ===.
Finally, you need to assign the value to the element.
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>