3 回答
TA贡献1851条经验 获得超3个赞
而不是使用document.querySelector
use document.querySelectorAll
- 后者将返回一个元素数组,而 prior 将只返回 1 个元素。
有关更多信息document.querySelectorAll
TA贡献1836条经验 获得超13个赞
以下可能是原因。
var everyAudio = document.querySelector('audio');
querySelector
只返回一个元素。
请使用querySelectorAll
获取数组。pause
为他们每个人打电话。
TA贡献1788条经验 获得超4个赞
由于您建议使用 document.querySelectorAll 而不是 document.querySelector,然后检查整个数组,第一个问题得到了回答。谢谢你!
对于第二个问题,我自己找到了解决方案。只需要使用音频 currentTime 音频参数。所以最后看起来是这样的。
<script>
function play(chord) {
var audio = document.getElementById(chord);
var active = document.querySelector('.playing');
var everyAudio = document.querySelectorAll('audio');
if(audio.classList.contains('playing')){
audio.pause();
}else{
for (var i = 0; i < everyAudio.length; i++){
everyAudio[i].classList.remove('playing');
everyAudio[i].pause();
everyAudio[i].currentTime = 0;
}
audio.play();
}
audio.classList.toggle('playing');
}
</script>
<input type="button" value="C Major" onclick="play('C')">
<audio id="C">
<source src="Tveice_A_09.09.wav" type="audio/wav">
</audio>
<input type="button" value="B Major" onclick="play('B')">
<audio id="B">
<source src="Black_sand_cello1_raw.wav" type="audio/wav">
</audio>
添加回答
举报