-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重复的类图像。

编辑

我的第二种情况是删除第一次出现的图像的图像,而不是从 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 回答