Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript数组中播放音频文件时出现问题_Javascript - Fatal编程技术网

在javascript数组中播放音频文件时出现问题

在javascript数组中播放音频文件时出现问题,javascript,Javascript,我正在尝试创建一个按钮,单击该按钮时播放音频文件,然后再次单击该按钮时播放阵列中的下一个文件。我让它播放,但当我第二次单击它时,它会播放第一个文件和第二个文件。当我第三次按它时,它会播放第一、第二和第三个。似乎我需要重置一些东西来清除页面的前两个磁道。以下是我所拥有的: <!DOCTYPE HTML> <html> <head> </head> <body> <script lan

我正在尝试创建一个按钮,单击该按钮时播放音频文件,然后再次单击该按钮时播放阵列中的下一个文件。我让它播放,但当我第二次单击它时,它会播放第一个文件和第二个文件。当我第三次按它时,它会播放第一、第二和第三个。似乎我需要重置一些东西来清除页面的前两个磁道。以下是我所拥有的:

    <!DOCTYPE HTML>
    <html>
    <head>
    </head>
    <body>

    <script language="javascript" type="text/javascript">

        audio = new Array('audio1.mp3','audio2.mp3','audio3.mp3');
        index = 0;

        function playSound() {
        if(index<3){
        document.getElementById("start").innerHTML=document.getElementById("start").innerHTML +
        "<embed src=\""+audio[index]+"\" hidden=\"true\" autostart=\"true\" loop=\"false\" />";
        index++;
        }
        else{ index = 0;
        document.getElementById("start").innerHTML=document.getElementById("start").innerHTML +
        "<embed src=\""+audio[index]+"\" hidden=\"true\" autostart=\"true\" loop=\"false\" />";
        index++;
        }



    }

     </script>

                <button id="start" type = "button" onclick="playSound();">Start</button>

    </body>

</html>

音频=新阵列('audio1.mp3'、'audio2.mp3'、'audio3.mp3');
指数=0;
函数playSound(){

如果(index您不断地添加越来越多的
元素,则从不删除任何元素

不要将它们附加到按钮,而是将它们附加到容器中,然后在添加另一个容器之前将其删除。

function playSound(){
function playSound() {
    if(index>=3){
         index = 0;
    }
    document.getElementById("sound").innerHTML=
    "<embed src=\""+audio[index]+"\" hidden=\"true\" autostart=\"true\" loop=\"false\" />";
    index++;
}
如果(索引>=3){ 指数=0; } document.getElementById(“声音”).innerHTML= ""; 索引++; }
并且添加一个div(你也可以通过css将其隐藏),我认为这是一个比将html添加到按钮更好的方法

<button id="start" type = "button" onclick="playSound();">Start</button>
<div id="sound" style="display:none"></div>
开始

我如何接受答案,对不起,我还在学习!我尝试了你的答案,它解决了同时播放多个文件的问题,但是按钮本身丢失了文本,大小变了一半。我感谢你的回答,谢谢!啊,那是因为你将隐藏的嵌入元素添加到按钮中。我将编辑我的答案以修复此问题t、 你可以通过按下我答案左边的V键来接受我的答案。好的,我现在接受了,谢谢你提供的信息。我创建了一个div,并将其添加到其中。它没有改变按钮,只是轻轻推了一下。我想我只需要找到一种更好的方法来隐藏div。不过肯定有更好的方法。我会继续尝试的!再次感谢n!如果我添加“display:none”的话,它根本就不起作用。对不起,
style=“visibility:hidden”
会做得更好。我试过了,但弄得一团糟。你可能已经猜到了,我仍然是javascript的初学者。我如何删除嵌入的元素?我发现了这个:element=document.getElementById(“元素id”);但似乎不起作用。我认为您必须向嵌入的元素添加id,但我认为这可能是错误的。我有很多东西要学习,我知道哈哈。感谢您的帮助。element.parentNode.removeChild(element);