'I have 7 drums display, each drum is supposed to make a different sound when you click on it
I'm taking this full-stack course, my code looks exactly as my instructor. Here's the problem, I have 7 drums display, each drum is supposed to make a different sound when you click on it, I'm using a switch statement to accomplish this, for some reason the switch statement is not working. HTML
<h1 id="title">Drum 🥁 Kit</h1>
<div class="set">
<button class="w drum">w</button>
<button class="a drum">a</button>
<button class="s drum">s</button>
<button class="d drum">d</button>
<button class="j drum">j</button>
<button class="k drum">k</button>
<button class="l drum">l</button>
</div>
JavaScript
var numberOfButtons = document.querySelectorAll(".drum").length;
for (var i = 0; i < numberOfButtons; i++) {
document.querySelectorAll(".drum")[i].addEventListener("click", function() {
var buttonInnerHTML = this.innerHTML;
switch (buttonInnerHTML) {
case "w":
var tom1 = new Audio("sounds/tom-1.mp3");
tom1.play();
break;
case "a":
var kick - bass = new Audio("sounds/kick-bass.mp3");
kick - bass.play();
break;
case "s":
var snare = new Audio("sounds/snare.mp3");
snare.play();
break;
case "d":
var tom - 1 = new Audio('sounds/tom-1.mp3');
tom - 1. play();
break;
case "j":
var tom - 2 = new Audio("sounds/tom-2.mp3");
tom - 2. play();
break;
case "k":
var tom - 3 = new Audio("sounds/tom-3.mp3");
tom - 3. play();
break;
case "l":
var tom - 4 = new Audio("sounds/tom-4.mp3");
tom - 4. play();
break;
default:
console.log(buttontrig);
}
});
}
Solution 1:[1]
var names cannot contain "-". That was a bug in your code.
Another bug in your code was fixed by changing the var buttonInnerHTML to "buttonHTML".
Copy code:
var numberOfButtons = document.querySelectorAll(".drum").length;
for (var i = 0; i < numberOfButtons; i++) {
document.querySelectorAll(".drum")[i].addEventListener("click", function() {
var buttonHTML = this.innerHTML;
switch (buttonHTML) {
case "w":
var tom1 = new Audio("sounds/tom-1.mp3");
tom1.play();
break;
case "a":
var kick = new Audio("sounds/kick-bass.mp3");
kick.play();
break;
case "s":
var snare = new Audio("sounds/snare.mp3");
snare.play();
break;
case "d":
var tom1 = new Audio('sounds/tom-1.mp3');
tom1. play();
break;
case "j":
var tom2 = new Audio("sounds/tom-2.mp3");
tom2. play();
break;
case "k":
var tom3 = new Audio("sounds/tom-3.mp3");
tom3. play();
break;
case "l":
var tom4 = new Audio("sounds/tom-4.mp3");
tom4. play();
break;
default:
console.log(buttonHTML);
}
});
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | ouflak |
