JQuery删除元素的重复项

时间:2014-08-22 19:24:32

标签: jquery

我的表单上有一些标签:

<label>8/22/2014</label> <!--label1-->
<label>8/22/2014</label> <!--label2-->
<label>8/23/2014</label> <!--label3-->
<label>8/24/2014</label> <!--label4-->
<label>8/25/2014</label> <!--label5-->
<label>8/25/2014</label> <!--label6-->
<label>8/26/2014</label> <!--label7-->
<label>8/26/2014</label> <!--label8-->
<label>8/26/2014</label> <!--label9-->

我只希望按日期分组的每个标签中的第一个保留在表单和其他标签上 被删除。根据上面的例子,这些元素应保留在表格中:

<label>8/22/2014</label> <!--label1-->
<label>8/23/2014</label> <!--label3-->
<label>8/24/2014</label> <!--label4-->
<label>8/25/2014</label> <!--label5-->
<label>8/26/2014</label> <!--label7-->

我该怎么做?

3 个答案:

答案 0 :(得分:3)

试试这个:

var seen = {};
$('label').each(function() {
    var str = $(this).text();
    if (seen[str])
        $(this).remove();
    else
        seen[str] = true;
});

JSFIDDLE DEMO

答案 1 :(得分:2)

$('label').each(function () {
    if ($(this).text() == $(this).prev().text()) $(this).remove()
})

<强> jsFiddle example

答案 2 :(得分:0)

$(function(){
    var dates = [];
    $('label').each(function(){
        if(dates.indexOf($(this).html())>-1) {
            $(this).remove();
            return;
        }

        dates.push($(this).html());
    });
});

或使用jquery.unique:http://api.jquery.com/jquery.unique/