jQuery - Iterar un comando de API durante varios objetos, sino a través de la identificación única?

StackOverflow https://stackoverflow.com/questions/4072277

Pregunta

Tengo una pila de vimeos en una página, quiero hacerlos todos, aunque mudo, ya que estarán jugando simultáneamente.

Tengo que trabajar en una sola vimeo. Ya que necesita el identificador único para cada vimeo. Pero no estoy interesado en hacer cosas diferentes a los videos. Sólo quiero darles una regla, y, obviamente, no tiene que escribirla cada vez que subo una nueva vimeo.

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

He intentado hacer todo ID = player_1 del vimeo, pero que no funciona. Por alguna razón no hay getElementByClass en JS, no debería de ser? Sería útil para cosas como esta.

Cualquier ayuda sería muy apreciada. Gracias.

Aquí está la testpage

¿Fue útil?

Solución

Dado que esta es etiquetada jQuery, te voy a dar una solución que debe trabajo para que, aunque no lo he intentado jugar con las clases de iframe.

Agregar class="vimeo" a los marcos flotantes. Iterar a través de ellos con lo siguiente:

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

each será iterar a través de todos los elementos que se corresponden por el selector (en este caso, vimeo).

Editar

Desde jQuery no parece que les gusta jugar con marcos flotantes, hay una manera más programático de hacer lo que ya está trabajando para usted:

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...
}

El truco ahora es determinar cuál debe ser player_count.

Otros consejos

jQuery le permitirá seleccionar un conjunto de elementos por clase con la sintaxis: $ ( "myClass")

http://api.jquery.com/class-selector/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top