显示Javascript数组中的多个按钮时,在按钮单击时播放声音

显示Javascript数组中的多个按钮时,在按钮单击时播放声音,javascript,html,arrays,Javascript,Html,Arrays,我希望用户能够在我的Javascript数组中搜索吉他和弦,让页面显示和弦和图像,并在每个图像下方显示一个按钮,以单击和播放和弦的声音。我可以让它显示图像和下面的按钮,但按钮点击没有任何作用。如果我将autostart设置为true,当页面加载时,它将播放阵列中最后一个.mp3声音,但按钮仍然不起作用。我如何才能让它显示和弦或多个和弦,并在其下方有一个按钮,用户可以单击以听到和弦声音 谢谢 以下是我在遍历数组时所做的操作: if (element === chord) { document.

我希望用户能够在我的Javascript数组中搜索吉他和弦,让页面显示和弦和图像,并在每个图像下方显示一个按钮,以单击和播放和弦的声音。我可以让它显示图像和下面的按钮,但按钮点击没有任何作用。如果我将autostart设置为true,当页面加载时,它将播放阵列中最后一个.mp3声音,但按钮仍然不起作用。我如何才能让它显示和弦或多个和弦,并在其下方有一个按钮,用户可以单击以听到和弦声音

谢谢

以下是我在遍历数组时所做的操作:

if (element === chord) {
  document.write("<table><tr>");
  for (var AChords in CHORDS[i].A) {
    if (CHORDS[i].A.hasOwnProperty(AChords)) {
      if (counter === 2) {
        document.write("</tr><br><tr>");
        counter = 0;
      }
      document.write("<td><img src=" + CHORDS[i].A[AChords].image + "><br><");
      document.write("<input type='button' value='Listen to Chord' onclick=" + playSound(CHORDS[i].A[AChords].sound) + ">");

      counter++;
    }
  }
  document.write("</tr></table>");
}
if(元素===和弦){
文件。填写(“”);
for(var-AChords-in-chord[i].A){
if(和弦[i].A.hasOwnProperty(AChords)){
如果(计数器==2){
文件。写(“
”); 计数器=0; }
document.write(“
在修复格式设置后,我发现您的代码有一些问题。您应该稍微修改一下您的编码习惯。
document.write
不是最佳解决方案。不过,让我们试着让它正常工作


首先,你有一个额外的
好的,我修复了所有这些。现在,当我点击一个按钮时,我在控制台中得到一个错误,上面写着:Uncaught SyntaxError:Unexpected token。我根本看不到一个。它带我去的地方。它带我到页面的一行,这行刚刚有。困惑了…谢谢你的帮助!还有一件事。我相信我真的很抱歉使用JSON数组(我是一个新手;),所以我认为这是我的问题的一部分。下面是我在.js文件中的数组的一部分:'code'var CHORDS=[{id:'a',a:[{name:'a',image:../public/img/CHORDS/a.png',sound:../public/sounds/CHORDS/a.mp3},{name:'a flat',image:'../public/img/chords/Aflat.png”,声音:“../public/sounds/chords/Aflat.mp3”},{name:“A sharp”,图像:“../public/img/chords/Asharp.png”,声音:“../public/sounds/chords/Asharp.mp3”},@mcirami当你更新了这样的问题时,最好像我对我的答案所做的那样对问题进行更新,然后对我的答案进行评论,让我知道你的问题已经更新。虽然我已经解决了此评论中涉及的问题。但我仍然有同样的问题,我现在只收到了意外的令牌错误。仍然没有答案d播放。右键单击要单击的按钮并选择“检查元素”。查看html并确保在
onclick
中显示
playSound(../public/sounds/chords/A.mp3”)
在文件路径周围加上引号。如果没有引号,请按照上面我的第一次更新中的建议操作。我能够重新创建您的问题,并通过该更新修复了它。然后我继续创建了一个小提琴,展示了更好的方法。请确保也看到我的上次更新。欢迎使用StackOverflow。我希望我的回答是有用的,而不是错误的仅解决此问题,但通过帮助您解决未来的问题。如果您有更多错误,请告诉我,如果答案有帮助,请进行投票,如果答案完全解决了您的问题,请接受(勾选)。请阅读此问题:
function playSound(soundfile) {
  document.getElementById("sound").innerHTML= "<embed src=\""+soundfile+"\" hidden=\"true\" autostart=\"false\" loop=\"false\"/>";
}
document.write("<input type='button' value='Listen to Chord' onclick='playSound(\""+CHORDS[i].A[AChords].sound+"\")'>");
var str = "Some string with a " in it"; 
   //Throws an error right here ^
var str = "Some string with a \" in it";
console.log(str); //output: Some string with a " in it
   //no error becuase of this ^
console.log("Windows uses \\ as their directory separator."); // Windows uses \\ as their directory separator.
console.log("Then again..... \nWindows sucks!"); //Then again..... 
                                                 //Windows sucks!
console.log("When I said \"Windows sucks!\", I meant it."); //When I said "Windows sucks!", I meant it.