2010-11-01 65 views
1

我在页面上有一堆vimeos,我想让它们全部静音,因为它们会同时播放。jQuery - 通过多个对象迭代API命令,但通过唯一ID?

我已经在只有一个vimeo工作。因为它需要每个vimeo的唯一ID。 但我不想对视频做不同的事情。我只想给他们一个规则,而且显然不必每次上传新vimeo时都写出来。

var iframe = document.getElementById("player_1"); 
iframe.api("api_setVolume", 50); 

我试着让所有的vimeo的ID = player_1,但是这不起作用。 由于某些原因,JS中没有getElementByClass,应该没有?这对于这样的事情会很有用。

任何帮助将不胜感激。谢谢。

这里是testpage

回答

1

由于这是标签的jQuery,我我会给你一个解决方案,工作,虽然我还没有尝试搞乱iframe类。

class="vimeo"添加到iframe。通过将它们与下面的迭代:

$(".vimeo").each(function() { 
    this.api("api_setVolume",50); 
}); 

each将迭代通过所有的由选择信息相匹配的元素(在此情况下,vimeo)。

编辑

因为jQuery的似乎不喜欢iframe出现搞乱,有做什么已经为你工作更编程方式:

var player_count = 2; 
for (var i = 1; i < player_count+1; i++) { 
    var iframe = document.getElementById("player_" + i); 
    iframe.api("api_setVolume", 50); 
    //put other global rules here... 
} 

诀窍现在是确定什么player_count应该。

+0

嗯我猜jQuery不喜欢iFrames ...即使我用“css(”visibility“,”hidden“)替换api调用;”例如,它不会做任何事情......可能有另一种方式? – RGBK 2010-11-01 19:41:19

+0

(你可以看到我的意思是在原来的链接) – RGBK 2010-11-01 19:43:22

+0

你打我吧(回答我的新问题!) – RGBK 2010-11-01 19:52:12