-1

私は次の画像を持っています

<div id="test">
<img class='img1' />
<img class='img2' />
<img class='img3' />
<img class='img4' />
<img class='img1' />
<img class='img2' />
<img class='img3' />
<img class='img4' />
</div>

img1, img2, img3, img4繰り返されるクラスの画像を削除したい。

編集

私の2番目のケースは、img4の最後ではなく、これより前の最初に表示された画像の画像を削除することです

4

3 に答える 3

2

行う:

$('#test').children().each(function(i, v){
    var $this = $(this), classname = $this.attr("class");
    $this.siblings('.' + classname).remove()
});

デモ :: jsFiddle

追加:: 次のような意味ですか:

var classes = [];
$("img").each(function(id, vl) {
    $this = $(this), cls = $this.attr("class");

    if( $.inArray(cls, classes) < 0 ) {
        classes.push(cls);
    }
});
for(var c = 0; c < classes.length; c++ ) {
    if( $("img."+classes[c]).length > 1 ) {
        $("img."+classes[c]+":first").remove();
    }
}
于 2013-09-22T08:49:53.707 に答える
1

重複を削除するだけです:

var seen = {};
$('img').each(function() {
    var className = $(this).attr('class');
    if (seen[className])
        $(this).remove();
    else
        seen[className] = true;
});
于 2013-09-22T08:50:38.533 に答える
0
var srcs = new Array();
$(document).ready(function(){
   $(".img1").each(function() {
        if(jQuery.inArray( $(this).attr('src'), srcs ) != -1 ) {
            $(this).remove();
        } else {
            srcs.push($(this).attr('src'));
        }
    });
});
于 2013-09-22T09:08:34.587 に答える