1

我有一个图像列表,我想根据宽度过滤掉图标,并存储在变量“图标”中。这部分完成没有问题。然后我试图过滤掉具有重复源的图标,所以我只得到'icons'变量中的唯一图标,并将其附加到uniq div。

我找到了这段代码,它在加载时删除了所有重复的图像。在添加到 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/

知道如何在附加它们之前获得过滤的“图标”以仅保留唯一的来源吗?

4

1 回答 1

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/

于 2012-10-27T17:42:54.987 回答