我正在尝试为我的项目编写音板网站,我希望能够点击<a>
标记并让它将音频播放到某个<audio>
标记。截至目前,我正在使用我在SO上找到的代码:
<a onclick="this.firstChild.play()"><audio src="1.aif"></audio>1</a>
虽然这在大多数情况下有效,但在iOS上使用它时,如果单击“1”而不是a,它将选择要播放的其他元素(我在页面上有多个元素)。我的想法是,我应该拥有它,以便当您点击<a>
时,它会通过课程播放某个<audio>
剪辑,
<a onclick="(.1).play()"><audio class="1" src="1.aif"></audio>1</a>
我不确定这是否是最好的方法,如果是,那么调用类而不是firstChild
的语法是什么。任何指导将不胜感激。
答案 0 :(得分:1)
如果您正在为元素提供单独的类名,那就是id的用途。 (类更适合应用于多个元素。)所以可能类似于:
<a onclick="document.getElementById('a1').play()"><audio id="a1" src="1.aif"></audio>1</a>
话虽如此,按类获取元素的方法是使用.getElementsByClassName()
- 注意它返回元素,复数,作为NodeList,所以即使你知道只有一个元素与给定的类你有允许:
<a onclick="document.getElementsByClassName('1')[0].play()"><audio class="1" src="1.aif"></audio>1</a>
请注意,如Quirksmode compatibility tables所示,并非所有浏览器都支持.getElementsByClassName()
。
(您也可以使用document.querySelectorAll()
,但旧浏览器也不支持。)