加入多个数组,并且return只包含唯一元素jQuery
Join multiple array, and return only unique elements jQuery
我有同位素问题。我正在使用 ajax 加载元素,并且在加载新元素时,它们具有 类 也用于过滤器。
我有一种方法可以通过检查元素是否在视图中来获取元素中的所有 类(我正在使用 imagesLoaded 库来检查图像是否已加载,然后我已经使用 .bind('inview',...
来触发更改,这样我就可以得到我的 类 数组。
$('#container').find('article').each(function(){
var class_list = $(this).attr('class').split(/\s+/);
});
这将在我加载的对象上 return 一个 类 数组,例如:
["class1", "class2", "class3", ""]
我得到了其中的几个。现在我如何获取所有这些,创建一个新数组并检查它们是否唯一?
我发现 .unique()
http://api.jquery.com/jquery.unique/ 和 .concat() 应该创建数组,但我不知道如何定位它们?
您可以在 Array.filter
方法中检查每个 class 作为 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;
});
});
我有同位素问题。我正在使用 ajax 加载元素,并且在加载新元素时,它们具有 类 也用于过滤器。
我有一种方法可以通过检查元素是否在视图中来获取元素中的所有 类(我正在使用 imagesLoaded 库来检查图像是否已加载,然后我已经使用 .bind('inview',...
来触发更改,这样我就可以得到我的 类 数组。
$('#container').find('article').each(function(){
var class_list = $(this).attr('class').split(/\s+/);
});
这将在我加载的对象上 return 一个 类 数组,例如:
["class1", "class2", "class3", ""]
我得到了其中的几个。现在我如何获取所有这些,创建一个新数组并检查它们是否唯一?
我发现 .unique()
http://api.jquery.com/jquery.unique/ 和 .concat() 应该创建数组,但我不知道如何定位它们?
您可以在 Array.filter
方法中检查每个 class 作为 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;
});
});