HTML5音频和jQuery
问题描述:
我想使用一个按钮来启动一个使用jQuery的HTML5音频标签的轨道,但我不断收到一个错误。HTML5音频和jQuery
var song = $('#audio');
$('#play').click(function() {
song.play();
});
当我使用的document.getElementById(“音频”),它的工作原理,但使用jQuery选择我收到以下错误时:
遗漏的类型错误:对象的翻译:有没有方法“玩'
感谢您的任何帮助。
答
尝试让本机的DOM元素的jQuery一无所知由$('#audio')
选择返回的包裹阵列上约.play
方法:
song.get(0).play();
答
你也可以把它写像song.trigger('play');
。这将允许您使用$('#audio');
选择器。
答
相反。获得的()只使用对象的符号:
var song = $('#audio');
$('#play').click(function() {
song[0].play();
});
它的打字比较少:)
这工作?为什么?你能否给出一个简单的解释,只是让我明白。谢谢!! – user699242
@ user699242,当你使用'$('.. some selector ..')'这将返回一个与你的选择器匹配的实际DOM对象数组。 .play方法是一种本地HTML5方法,您需要在实际的本机DOM元素上调用该方法。所以你需要从jQuery选择器返回的数组中获取这个本地DOM元素。因为你使用了一个id选择器('#audio'),所以我们可以假设你的DOM中有一个元素与这个选择器相匹配,所以我们可以安全地使用'.get(0)'来获取它。所以基本上当你使用'$(...)'时,你只能调用结果的jQuery函数,'play'不是 –
真的有帮助。但是,为什么在使用.get(0).tagName时报告未定义的错误? – panda