1

画像のリストがあり、幅に基づいてアイコンを除外し、変数「icons」に保存したいと思います。この部分は問題なく実行されます。次に、ソースが重複しているアイコンを除外しようとしているので、「icons」変数で一意のアイコンのみを取得し、それをuniqdivに追加します。

私はこのコードを見つけました。これは、ロード時に重複するすべての重複画像を削除します。'アイコン'が最初にフィルタリングされてからuniqdivに追加された後、実行できません。

$(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 に答える