Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript firefox 25没有为音频标签定义play()?_Javascript_Html_Firefox_Audio - Fatal编程技术网

Javascript firefox 25没有为音频标签定义play()?

Javascript firefox 25没有为音频标签定义play()?,javascript,html,firefox,audio,Javascript,Html,Firefox,Audio,我有以下音频标签: <audio preload> <source src='/sounds/notify.ogg' type='audio/ogg'> </audio> 我想通过js播放它,所以我自然希望调用$(“audio”).play()来播放它(这是页面上唯一的音频标记),但我得到一个错误,说明play没有定义。经检查,情况就是这样。音频元素没有播放属性。我读过的每一篇教程或资源都说这是你需要做的全部,但是。。。嗯,我就是做不到。是我的FF版

我有以下音频标签:

<audio preload>
  <source src='/sounds/notify.ogg' type='audio/ogg'>
</audio>

我想通过js播放它,所以我自然希望调用$(“audio”).play()来播放它(这是页面上唯一的音频标记),但我得到一个错误,说明play没有定义。经检查,情况就是这样。音频元素没有播放属性。我读过的每一篇教程或资源都说这是你需要做的全部,但是。。。嗯,我就是做不到。是我的FF版本刚刚被破坏了,还是我在这些不同的文本中遗漏了一些没有说明的内容?

play()
是一个DOM方法,而不是jQuery方法,这意味着在获得
play
属性之前,您需要获得实际的DOM元素。要获取实际的DOM元素,可以使用jQuery方法:

或者简单地使用数组索引:

$('audio')[/*insert element index*/].play();
为了获得更多的选择,您可以这样做:

$('audio').eq(/*insert element index*/).prop('play')();
您甚至可以这样做来播放每个音频元素:

$('audio').each(function () { this.play(); });
play()
是一个DOM方法,而不是jQuery方法,这意味着您需要先获得实际的DOM元素,然后才能获得
play
属性。要获取实际的DOM元素,可以使用jQuery方法:

或者简单地使用数组索引:

$('audio')[/*insert element index*/].play();
为了获得更多的选择,您可以这样做:

$('audio').eq(/*insert element index*/).prop('play')();
您甚至可以这样做来播放每个音频元素:

$('audio').each(function () { this.play(); });

正如澳航提到的,play不是jQuery方法,但如果需要,您可以轻松添加它,如下所示:

$.fn.play = function() {
   return this.each(function() {
      this.play();
   });
}

正如澳航提到的,play不是jQuery方法,但如果需要,您可以轻松添加它,如下所示:

$.fn.play = function() {
   return this.each(function() {
      this.play();
   });
}

啊,这就解释了。我知道它不是jquery方法,但我认为您也可以使用附加到返回元素的方法。我想我只是在这一点上还没有遇到这种情况,或者我仍然误解了什么。在开发者控制台中检查返回的对象,它有我期望的音频标签的各种属性,只是没有播放。啊,这就解释了。我知道它不是jquery方法,但我认为您也可以使用附加到返回元素的方法。我想我只是在这一点上还没有遇到这种情况,或者我仍然误解了什么。在开发人员控制台中检查返回的对象时,它具有我期望的音频标记的各种属性,只是没有播放。谢谢,我的印象是,如果选择只返回一个元素,则不需要指定索引。到目前为止,它似乎工作得很好,但正如我在下面所说的,我可能误解了它的某些方面。@kryptobs2000:jQuery对象是实际DOM元素的包装器-尽管它确实有自己的函数和属性,这些函数和属性看起来非常相似,可以与它们的DOM等价物同名。谢谢,我的印象是,如果选择只返回一个元素,则不需要指定索引。到目前为止,它似乎工作得很好,但正如我在下面所说的,我可能误解了它的某些方面。@kryptobs2000:jQuery对象是实际DOM元素的包装器-尽管它确实有自己的函数和属性,这些函数和属性看起来非常相似,可以与它们的DOM等价物同名。