2013-05-16 2 views
0

Есть ли способ сделать что-то подобное, чтобы избежать необходимости делать .each или цикл for?Избегание цикла

$('.backstretch-frame').backstretch(function(){ return $(this).data('img'); }); 

В основном пытается вытащить содержимое атрибута для этого конкретного объекта в коллекции для создания экземпляра.

+0

Это не очень понятно, что ваш предполагаемый результат есть. Вы ищете массив строк, который является атрибутом данных 'img' каждого' .backstrecth-frame'? –

+0

Вкратце, я хотел бы применить 'backstretch()' ко всем экземплярам '.backstretch-frame', используя встроенный getter вместо того, чтобы настраивать цикл for или использовать функцию' .each() 'jQuery. – probablyup

+1

Извините, но '.data' может возвращать только одно значение для одного элемента. Почему вы не хотите использовать '.each'? Это именно то, что вам нужно. – Blazemonger

ответ

1

Как это или нет, если вы хотите, чтобы получить все .data('img') значения для каждого экземпляра .backstretch-frame, вам потребуется .each цикл:

var temp_array = []; 
$('.backstretch-frame').each(function() { 
    var t = $(this).backstretch(function() { 
     return $(this).data('img'); 
    }); 
    temp_array.push(t); 
}); 
// now temp_array contains all the values of .data('img'), in order 
Смежные вопросы