2012-10-27 19 views
1

我有一个图像列表,我想根据宽度过滤图标,并存储在变量'图标'。这部分完成没有问题。然后,我尝试过滤出带有重复源代码的图标,因此我只在“图标”变量中获得唯一图标,并将其附加到uniq div。jQuery - 过滤独特的图标来源

我发现这个代码,它删除负载上重复的所有重复图像。我不能让它的“图标”已经被附加到uniq的DIV前先过滤后运行:

$(function(){ 
var srcs = [], temp; 
    $("img").filter(function(){ 
     temp = $(this).attr("src"); 
     if($.inArray(temp, srcs) < 0){ 
      srcs.push(temp); 
      return false; 
     } 
     return true; 
    }).remove(); 
}); 

这是我到目前为止有: http://jsfiddle.net/xCjjp/9/

任何想法如何过滤后的'图标'在追加之前只保留唯一的来源?

回答

2

当你通过循环您的图像,他们每新图像源添加到div#uniq添加到一个数组,并检查每个连续的源针对阵列,如果它不存在,这意味着它是唯一的。

var icons = $("img").filter(function(){ 
    return (this.width < 100) 
}); 
    var icon_src = []; 

$.each(icons, function(i,e){ 
    if ($.inArray(e.src, icon_src) === -1) { 
     $("#uniq").append("<img src='"+ e.src +"'>"); 
     icon_src.push(e.src); 
    } 
}); 

你可以在这里找到它的工作http://jsfiddle.net/KhWgj/4/