加入多个数组,只返回jQuery的唯一元素

时间:2015-03-12 13:47:41

标签: jquery arrays ajax jquery-isotope

我有同位素问题。我正在使用ajax加载元素,并且在加载新元素时,它们的类也会在过滤器中使用。

我有办法通过检查元素是否在视图中来获取元素中的所有类(我使用的是imagesLoaded库,用于检查图像是否已加载,然后使用{{1}这将触发更改,以便我可以获取我的数组类。)

.bind('inview',...

这将在我加载的对象上返回一个类数组,如:

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

我得到了其中几个。现在我该如何处理所有这些,创建一个新阵列并检查它们是否是唯一的?

我找到了应该创建数组的["class1", "class2", "class3", ""] http://api.jquery.com/jquery.unique/和.concat(),但我不知道如何定位它们?

1 个答案:

答案 0 :(得分:1)

您可以使用Array.filter方法将每个类的长度检查为jQuery集合:

$('#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;
     });
});