通过单击div-javascript启用/禁用所有声音效果

通过单击div-javascript启用/禁用所有声音效果,javascript,audio,switch-statement,effects,Javascript,Audio,Switch Statement,Effects,我正在用Wordpress建立一个网站,我正在为不同页面上的不同元素使用div和鼠标事件(onmouseover、onmouseenter和onclick) 我在页脚中放了音频和脚本: <audio id="ef1"><source src="url"/></audio> <script type="text/javascript">var ef1 = document.getElementById("ef1"); ef1.volume='0.4'

我正在用Wordpress建立一个网站,我正在为不同页面上的不同元素使用div和鼠标事件(onmouseover、onmouseenter和onclick)

我在页脚中放了音频和脚本:

<audio id="ef1"><source src="url"/></audio>
<script type="text/javascript">var ef1 = document.getElementById("ef1"); ef1.volume='0.4';</script>
我还可以加载某些页面。所以不是每个音频都在页脚

现在的问题是,我如何才能同时处理所有这些音频-通过单击单个元素(div)启用/禁用所有音频

拥有音量滑块也不会有什么坏处,但对我来说启用/禁用功能就足够了

编辑:我需要这是一个切换功能,作为div中的onclick事件。现在我所知道的是:

onclick="ef1.volume='0'; ef2.volume='0'; etc"
这个问题(除了有很多音频之外)是在刷新或打开其他页面后,音量恢复正常

edit2:这就是我要问的可能吗?也许这个onclick事件应该以某种方式“记住”ip地址,或者干脆留下cookies?我不知道如何实现这一点(完全是初学者).

如果您想关闭所有
,可以使用
document.getElementsByTagName('audio')
获得它们。它返回一个数组(
NodeList
实际上),其中包含对页面上所有
的引用。您可以在这个数组中循环并对每个数组执行一些操作,例如调用
pause()

var audioElements = document.getElementsByTagName('audio');
for(var i = 0; i < audioElements.length; ++i){
  audioElements[i].pause();
}
var audioElements=document.getElementsByTagName('audio');
对于(var i=0;i
谢谢你的帮助。然而,我不知道该怎么办(我在这个领域是全新的)。我需要这是一个切换功能,作为一个div中的onclick事件。现在我所知道的只是把onclick=“ef1.volume='0';ef2.volume='0';等等”与此相关的问题(除了有很多音频)是,在刷新或打开其他页面后,卷恢复正常。嘿,Joseph,我在很长一段时间后又回到了这个问题。我已尝试实现您的代码($('#allsounds')。单击(function(){var audioElements=document.getElementsByTagName('audio');for(var I=0;Ivar audioElements = document.getElementsByTagName('audio'); for(var i = 0; i < audioElements.length; ++i){ audioElements[i].pause(); }