我正在通过http://wesbos.com做这个Javascript(vanilla JS)30天的挑战。 我试着不去看第一个挑战的参考代码。
无论如何,我试图让这段代码工作,但我最终得到了这个错误:" 未捕获的TypeError:audElem.play不是函数"
这是我的代码:
function functionA( item){
// alert("HEYYY")
item.classList.add("playing");
var audElem= item.getElementsByTagName('audio') [0].getElementsByTagName('source')[0];
var song= audElem.getAttribute('src');
song.currentTime=0;
song.play();
}
这就是html部分:
<li class="flex-item " > A
<span class="flex-SubItem"> <br /> BOOM </span>
<audio id="boom" >
<source src="sound-effects/boom.mp3" type="audio/mpeg">
</audio>
</li>
我试图弄清楚但没有。除了你们,我没有人问。 我希望我能得到答案。 谢谢任何方式:)
答案 0 :(得分:4)
play
是<audio>
对象的一种方法,但您在字符串上调用它,它是从<source>
对象的属性获得的。< / p>
答案 1 :(得分:3)
对于谁有兴趣我终于设法通过获取音频标签的ID并在之后调用它来使其工作。 这是代码:
function functionA( item){
item.classList.add("playing");
var audElem= item.getElementsByTagName('audio')[0].getAttribute('id');
var song = document.getElementById(audElem);
song.play();
}
答案 2 :(得分:0)
答案 3 :(得分:0)
我遇到了同样的问题,只是使用querySelector修复了它。根据您的情况,您可以替换以下代码:
var audElem= item.getElementsByTagName('audio') [0].getElementsByTagName('source')[0];
var song= audElem.getAttribute('src');
此行:
document.querySelector('boom').play();