jQuery - Iterieren einen API-Befehl über mehrere Objekte, sondern über eindeutige ID?
-
28-09-2019 - |
Frage
Ich habe einen Stapel von vimeos auf einer Seite, möchte ich sie alle stumm, obwohl machen, wie sie gleichzeitig spielen werden.
Ich habe es nur eine vimeo auf zu arbeiten. Da braucht es die eindeutige ID für jede vimeo. Aber ich bin nicht daran interessiert, verschiedene Dinge zu den Videos zu tun. Ich will nur sie eine Regel geben, und natürlich nicht schreiben Sie es heraus jedes Mal muss ich einen neuen Vimeo hochgeladen werden.
var iframe = document.getElementById("player_1");
iframe.api("api_setVolume", 50);
versuchte ich, damit ich die ganze Vimeos ID = player_1, aber das funktioniert nicht. Aus irgendeinem Grund keine getElementByClass in JS da ist, sollte es nicht sein? Es wäre nützlich für Dinge wie diese.
Jede Hilfe wäre sehr geschätzt. Danke.
Hier ist die Testseite
Lösung
Da diese jQuery markiert ist, werde ich Ihnen eine Lösung, dass sollte Arbeit für das, obwohl ich nicht versucht haben, mit iframe Klassen durcheinander.
In class="vimeo"
den iframes. Iterate durch sie mit dem folgenden:
$(".vimeo").each(function() {
this.api("api_setVolume",50);
});
each
wird iteriert durch alle Elemente, die durch den Selektor angepasst sind (in diesem Fall vimeo
).
Bearbeiten
Da jQuery scheint nicht wie mit iframes Messing, dann ist es eine programmatische Art und Weise zu tun, was bereits funktioniert für Sie:
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...
}
Der Trick ist nun die Bestimmung, was player_count
sein sollte.
Andere Tipps
jQuery werden Sie eine Reihe von Elementen nach Klasse mit der Syntax auswählen: $ ( "myClass")