jQuery - повторение команды API для нескольких объектов, но через уникальный идентификатор? - PullRequest
1 голос
/ 01 ноября 2010

У меня есть стопка vimeos на странице, но я хочу отключить их все, так как они будут играть одновременно.

Я работаю только с одним vimeo. Так как для каждого vimeo нужен уникальный идентификатор. Но я не заинтересован в том, чтобы делать разные вещи с видео. Я просто хочу дать им одно правило, и, очевидно, не нужно писать его каждый раз, когда я загружаю новый vimeo.

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

Я попытался сделать все идентификаторы vimeo = player_1, но это не сработало. По какой-то причине в JS нет getElementByClass, не должно быть? Это было бы полезно для таких вещей.

Любая помощь будет принята с благодарностью. Спасибо.

Вот тестовая страница

Ответы [ 2 ]

1 голос
/ 01 ноября 2010

Поскольку это тег jQuery, я дам вам решение, что должно работать для этого, хотя я не пробовал возиться с классами iframe.

Добавить class="vimeo" вфреймыИтерируйте их следующим образом:

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

each будет проходить через все элементы, которые соответствуют селектору (в данном случае vimeo).

РЕДАКТИРОВАТЬ

Так как jQuery, похоже, не любит возиться с iframes, есть более программный способ сделать то, что уже работает для вас:

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 голосов
/ 01 ноября 2010

jQuery позволит вам выбрать набор элементов по классам с синтаксисом: $ (". MyClass")

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

...