Javascript 使用jquery时未定义audio clip.paused
我有一个非常简单的javascript函数来播放和暂停HTML音频文件。从测试中我可以看出,当我使用document.getElementById时,下面的函数工作得很好,但是当我尝试使用jQuery时,没有定义.pausedJavascript 使用jquery时未定义audio clip.paused,javascript,jquery,html,audio,Javascript,Jquery,Html,Audio,我有一个非常简单的javascript函数来播放和暂停HTML音频文件。从测试中我可以看出,当我使用document.getElementById时,下面的函数工作得很好,但是当我尝试使用jQuery时,没有定义.paused function playAudio(audioID){ var clip = $("#" + audioID); console.log(clip); console.log(clip.paused); if (clip.paused){
function playAudio(audioID){
var clip = $("#" + audioID);
console.log(clip);
console.log(clip.paused);
if (clip.paused){
clip.play();
}
else{
clip.pause();
}
}
这由onclick调用调用:
<img src="media/play.png" class="play" onclick="playAudio('audio1');">
当我记录剪辑时,它会返回正确的音频文件。但是当我尝试记录paused是true还是false时,控制台会说它是未定义的
function playAudio(audioID){
var clip = $("#" + audioID);
console.log(clip);
console.log(clip.paused);
if (clip.paused){
clip.play();
}
else{
clip.pause();
}
}
有什么建议吗
谢谢。$(“#”+audioID)
没有像文档那样提供音频元素。getElementById
会提供一个封装音频元素的jQuery对象。如果要访问音频元素的属性,必须从jQuery对象公开它。
要从jQuery对象公开属性,可以使用
.prop()
(if(clip.prop('paused')){
),也可以使用.get()
和[]
公开元素本身
function playAudio(audioID){
var clip = $("#" + audioID);
console.log(clip[0]);
console.log(clip.prop('paused'));
if (clip.prop('paused')){
clip[0].play();
}
else{
clip.get(0).pause();
}
}