JQuery - iterando um comando da API em vários objetos, mas através de ID exclusivo?
-
28-09-2019 - |
Pergunta
Eu tenho uma pilha de Vimeos em uma página, eu quero torná -los todos mudos, pois eles estarão jogando simultaneamente.
Eu tenho isso trabalhando em apenas um Vimeo. Como precisa do ID exclusivo para cada Vimeo. Mas não estou interessado em fazer coisas diferentes nos vídeos. Eu só quero dar a eles uma regra e, obviamente, não tenho que escrevê -la toda vez que carrego um novo Vimeo.
var iframe = document.getElementById("player_1");
iframe.api("api_setVolume", 50);
Tentei fazer todo o ID do Vimeo = Player_1, mas isso não funciona. Por alguma razão, não há getElementsblascl no JS, não deve haver? Seria útil para coisas assim.
Qualquer ajuda seria muito apreciada. Obrigado.
Aqui está o TestPage
Solução
Como este é o jQuery marcado, eu vou te dar uma solução que deve Trabalhe para isso, embora eu não tenha tentado mexer com as aulas do iFrame.
Adicionar class="vimeo"
para os iframes. Itera através deles com o seguinte:
$(".vimeo").each(function() {
this.api("api_setVolume",50);
});
each
iterará através de todos os elementos que são correspondidos pelo seletor (neste caso, vimeo
).
EDITAR
Como o JQuery não parece gostar de mexer com o IFRAME, há uma maneira mais programática de fazer o que já está funcionando para você:
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...
}
O truque agora é determinar o que player_count
deveria estar.
Outras dicas
JQuery permitirá que você selecione um conjunto de elementos por classe com a sintaxe: $ (". MyClass")