【问题标题】:jQuery sending only the first character of string with each() and thisjQuery 仅使用 each() 发送字符串的第一个字符,这
【发布时间】:2014-06-20 13:43:07
【问题描述】:

我正在尝试为单个页面上的各种 iframe 调用 Froogaloop,但 this 仅返回 playerID 的第一个字符('vimeo1'、'vimeo2' 等)

我在 each() 之前立即记录 playerId(一个字符串)并且它返回正常,但是一旦我进入 each(),this 就变成了“v”。

jQuery(playerId).each(function(){
  Froogaloop(this).addEvent('ready', ready);
});

谢谢!

【问题讨论】:

  • 您是一次传入playerID 吗?换句话说,您的playerID 是字符串数组还是单个字符串?
  • 我不明白你的问题。如果playerId 是一个字符串,如您所说,$() 会将其解释为选择器。如果它不是一个有效的选择器(很可能不是),那么什么都不会匹​​配,each() 将没有任何东西可以迭代。
  • 为了澄清,我通过提取某个类的所有元素然后获取它们的 ID 来获取 ID:jQuery('.player').each(function(){ var id = this.id ; playerList.push(id); });

标签: jquery froogaloop


【解决方案1】:

您是否使用 playerID 引用页面上的元素? “vimeo1”是类名还是ID?如果是这样,则字符串必须是 .vimeo1#vimeo1。这样,jQuery 将搜索像 jQuery('.vimeo1') 这样的元素,而不是 jQuery('vimeo1')

var playerId = '.vimeo1';

jQuery(playerId).each(function(){
  Froogaloop(this).addEvent('ready', ready);
});

【讨论】:

  • 天哪。谈基本。我在上面使用了其他一些条件来在需要时添加“#”,但这不起作用,所以我认为这不是问题。事实证明,条件被搞砸了。非常感谢您的帮助!
【解决方案2】:

我不知道 froogaloop 期望什么样的参数,但如果它是来自 playerID 数组的字符串,这应该可以满足您的需求:

$.each(playerId, function(index, value){
    Froogaloop(value).addEvent('ready', ready);
})

【讨论】:

    猜你喜欢
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    • 2019-07-28
    • 2016-09-15
    • 1970-01-01
    • 2016-03-29
    相关资源
    最近更新 更多