HTML5音频和jQuery

use*_*242 27 audio jquery html5 playback

我试图使用按钮在使用jQuery的HTML5音频标签中启动轨道,但我一直收到错误.

var song = $('#audio');

$('#play').click(function() {
song.play();
});
Run Code Online (Sandbox Code Playgroud)

当我使用document.getElementById('audio')时,它可以工作,但是当使用jQuery选择器时,我收到以下错误:

未捕获的TypeError:对象[object Object]没有方法'play'

谢谢你的帮助.

Dar*_*rov 59

尝试获取本机DOM元素,因为jQuery .play对$('#audio')选择器返回的包装数组上的方法一无所知:

song.get(0).play();
Run Code Online (Sandbox Code Playgroud)

  • @ user699242,当你使用`$('.. some selector ..')`这会返回一个与你的选择器匹配的实际DOM对象数组..play方法是一个本机HTML5方法,您需要在实际的本机DOM元素上调用它.因此,您需要从jQuery选择器返回的数组中获取此本机DOM元素.因为你正在使用一个id选择器(`#audio`),我们可以假设你的DOM中有一个元素匹配这个选择器,所以我们可以安全地使用`.get(0)`来获取它.所以基本上当你使用`$(...)`时,你只能在结果上调用jQuery函数,而`play`则不能 (7认同)
  • 这有用......为什么?你能简单解释一下,我理解.谢谢!! (3认同)

Col*_*tin 13

你也可以这样写song.trigger('play');.这将允许您使用$('#audio');选择器.