2015-03-12 2 views
0

У меня проблема с изотопом. Я загружаю элементы с помощью ajax, и когда новые элементы загружаются, у них есть классы, которые также используются в фильтрах.Присоединитесь к множеству массивов и верните только уникальные элементы. JQuery

У меня есть способ получить все классы из элементов, проверяя, находятся ли элементы в представлении (я использую библиотеку imagesLoaded, которая проверяет, загружены ли изображения, а затем к этому я использовал .bind('inview',..., который будет вызвать изменение, чтобы я мог получить свой массив классов).

$('#container').find('article').each(function(){ 
    var class_list = $(this).attr('class').split(/\s+/); 
}); 

Это возвращает массив классов на моих загруженных объектов, как:

["class1", "class2", "class3", ""] 

И я получаю несколько из них. Теперь, как я могу взять все это, создать новый массив и проверить, являются ли они уникальными?

Я нашел .unique()http://api.jquery.com/jquery.unique/ и .concat(), которые должны создать массив, но я не знаю, как их настроить?

ответ

1

Вы можете проверить длину каждого класса в коллекции JQuery все в методе Array.filter:

$('#container').find('article').each(function(){ 
    var class_list = $(this).attr('class').split(/\s+/); 

    var uniqueClasses = class_list.filter(function(className) { 
     return className && $("." + className).length === 1; 
    }); 
}); 
+0

Это, кажется, сделать это, но по какой-то причине он удаляет классы по АЯКС нагрузки. –

+0

Вы переписываете их в свой AJAX-вызов? – tymeJV

+0

Нет, ничего в моем AJAX не обрабатывает это с помощью классов. Простое возвращение статей. –

Смежные вопросы