【问题标题】:Proper Use of $.each object properties正确使用 $.each 对象属性
【发布时间】:2016-06-04 12:29:18
【问题描述】:

我有以下代码:

$.each($('#someElement audio'), function(i, obj){
    if(obj.play()){
      //do something
    }
});

抛出以下错误: Object doesn't support property or method 'play'

谁能解释我为什么会收到这个错误?

【问题讨论】:

  • 你能在这里添加一些上下文吗?您在哪里/如何定义play()paused()#some element 是什么,你为什么要 each() 它?
  • obj 中包含的对象应与$('#some element')[0]document.getElementById('someelement') 相同。所以....这个问题没有多大意义。
  • “使用某些通用属性” ...完全不知道这意味着什么。建议阅读:stackoverflow.com/help/how-to-ask
  • 当我以这种方式引用它时,我收到一条错误消息Object doesn't support property or method 'play'。有人告诉我,每个循环中使用的对象是一个精简的对象,只能引用特定的属性/方法。在这种情况下,#some element 是一个音频标签。
  • 正在努力学习 jsjquery 所以对不起!重构了问题,希望你能理解。

标签: javascript jquery each


【解决方案1】:

play()pause() 方法在访问 jQuery 元素(即$('#audioel'))时不可用,但只能在实际 DOM 元素上使用(可通过 jQuery 中的$('#audioel')[0] 访问)。

如果您想播放给定页面上的所有音频元素,您可以执行以下操作:

$(document).ready(function() {
  $('.audio').each(function() {
    $(this)[0].play();
  });
});

工作示例:https://jsfiddle.net/smha4nqz/2/

【讨论】:

    猜你喜欢
    • 2010-10-20
    • 2011-04-24
    • 2013-05-20
    • 1970-01-01
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    • 2020-02-08
    相关资源
    最近更新 更多