2012-10-27 44 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/