我怎么能做到这一点?
<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>
答案 0 :(得分:2)
只需将字典放在一边,检查字典中是否存在日期。如果是,remove()
它。
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;
答案 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的小片段。
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;
答案 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;
});
答案 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}}