如何使用jQuery删除具有多个相同数据值的div?

时间:2016-03-16 14:13:49

标签: javascript jquery html

我怎么能做到这一点?

<div class="chat_timestamp_group" data-date="08-March-2016"></div>
<div class="chat_timestamp_group" data-date="08-March-2016"></div>
<div class="chat_timestamp_group" data-date="14-March-2016"></div>
<div class="chat_timestamp_group" data-date="14-March-2016"></div>

通缉结果:

<div class="chat_timestamp_group" data-date="08-March-2016"></div>
<div class="chat_timestamp_group" data-date="14-March-2016"></div>

6 个答案:

答案 0 :(得分:2)

只需将字典放在一边,检查字典中是否存在日期。如果是,remove()它。

&#13;
&#13;
var d = {};
$('div').each(function() {
  var elm = $(this),
      date = elm.attr('data-date');
  
  if (date in d) {
    elm.remove();  
  }
  else {
    d[date] = date;  
  }
});
&#13;
div:before {
    content:attr(data-date);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="chat_timestamp_group" data-date="08-March-2016"></div>
<div class="chat_timestamp_group" data-date="08-March-2016"></div>
<div class="chat_timestamp_group" data-date="14-March-2016"></div>
<div class="chat_timestamp_group" data-date="14-March-2016"></div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

使用jQuery,你可以这样做:

<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script>
$( function () {
    var dates = [];
    $( "div.chat_timestamp_group" ).each( function (k,v) {
        var date = $( this ).attr( 'data-date' );
        if( dates.indexOf(date) !== -1 ){
            $( this ).remove();
        }
        else{
            dates.push( date );
        }
    }); 
});
</script>

答案 2 :(得分:1)

这是一个用于删除不需要的div的小片段。

&#13;
&#13;
var divDates = [];

$('div.chat_timestamp_group').each(function(i, div) {
  var dataDate = $(div).attr('data-date');
  if (jQuery.inArray(dataDate, divDates) > -1) {
    $(div).remove();
  } else {
    divDates.push(dataDate);
  }
});
&#13;
div.chat_timestamp_group,
div.chat_timestamp_group0 {
  border: 2px solid #000000;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

BEFORE
<br>
<div class="chat_timestamp_group0" data-date="08-March-2016">08-March-2016</div>
<div class="chat_timestamp_group0" data-date="08-March-2016">08-March-2016</div>
<div class="chat_timestamp_group0" data-date="14-March-2016">14-March-2016</div>
<div class="chat_timestamp_group0" data-date="14-March-2016">14-March-2016</div>

<hr>AFTER
<br>
<div class="chat_timestamp_group" data-date="08-March-2016">08-March-2016</div>
<div class="chat_timestamp_group" data-date="08-March-2016">08-March-2016</div>
<div class="chat_timestamp_group" data-date="14-March-2016">14-March-2016</div>
<div class="chat_timestamp_group" data-date="14-March-2016">14-March-2016</div>
&#13;
&#13;
&#13;

答案 3 :(得分:1)

您可以使用.filter()

var res = [];

var elems = $(".chat_timestamp_group").filter(function(i, el) {
  if (res.indexOf($(el).data("date")) === -1) {
    res.push($(el).data("date"));
    return true
  } else {
    return false
  }
});

console.log(elems)
<script src="https://code.jquery.com/jquery-git.js"></script>

<div class="chat_timestamp_group" data-date="08-March-2016"></div>
<div class="chat_timestamp_group" data-date="08-March-2016"></div>
<div class="chat_timestamp_group" data-date="14-March-2016"></div>
<div class="chat_timestamp_group" data-date="14-March-2016"></div>

答案 4 :(得分:1)

试试这个。

var found = {};
$('.chat_timestamp_group').each(function() {
    var value = $(this).data('date');
    if (found[value])
        $(this).remove();
    else
        found[value] = true;
});

https://jsfiddle.net/gb2hxuLd/

答案 5 :(得分:1)

您可以使用$.map().outerHTML.replaceWith()var elems = $(".chat_timestamp_group"); var filter = $.uniqueSort($.map(elems, function(el) { return el.outerHTML})); elems.replaceWith(function(i) { return filter[i] || "" });

<script src="https://code.jquery.com/jquery-git.js"></script>
<div class="chat_timestamp_group" data-date="08-March-2016">08-March-2016</div>
<div class="chat_timestamp_group" data-date="08-March-2016">08-March-2016</div>
<div class="chat_timestamp_group" data-date="14-March-2016">14-March-2016</div>
<div class="chat_timestamp_group" data-date="14-March-2016">14-March-2016</div>
{{1}}