gpt4 book ai didi

Javascript - 根据单击的按钮的 ID 创建开关盒

转载 作者:行者123 更新时间:2023-11-28 17:42:51 25 4
gpt4 key购买 nike

我正在尝试创建一个虚拟键盘,它根据单击的按钮输出声音(莫尔斯电码)。

键盘布局是使用 HTML 按钮创建的,如下所示:

<button id="q">Q</button>
<button id="w">W</button>
<button id="e">E</button>
<button id="r">R</button>
<button id="t">T</button>
<button id="y">Y</button>

如何创建一个 switch 语句,根据单击的按钮的 ID 播放音频?在这种情况下,是否有更好的替代 switch 语句?

到目前为止,我已经想出了以下 JS 代码,但它似乎不起作用:

document.getElementByTagName("button").onclick(){
switch(){
case "a":
a.play();
document.getElementById("letter").innerHTML = "A";
document.getElementById("morse").innerHTML = ".-";
break;
case "b":
b.play();
document.getElementById("letter").innerHTML = "B";
document.getElementById("morse").innerHTML = "-...";
break;
}
}

提前致谢!!

完整项目链接:https://github.com/Grexus/Personal-Projects/tree/master/Morse%20Code-er

最佳答案

这里有一个拼写错误document.getElementByTagName,它将是document.getElementsByTagName。注意s

也可以使用对象映射来代替 switch case ,因为 switch case 会增加复杂性

// using spread syntax to convert collection to array
// forEach is an array method
[...document.getElementsByTagName("button")].forEach(function(item) {
// adding eventListener to the elements
item.addEventListener('click', function() {
// calling the methods
// this.id will be the id of the clicked button
// there is a method in the object by same name, which will be trigger
obj[this.id]();

})
})

var obj = {
q: function() {
console.log('q')
},
w: function() {
console.log('w')
},
e: function() {
console.log('e')
},
r: function() {
console.log('r')
},
t: function() {
console.log('t')
},
y: function() {
console.log('y')
}
}
<button id="q">Q</button>
<button id="w">W</button>
<button id="e">E</button>
<button id="r">R</button>
<button id="t">T</button>
<button id="y">Y</button>

关于Javascript - 根据单击的按钮的 ID 创建开关盒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47517769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com