Javascript 如何使用jQuery删除具有多个相同数据值的div?
我怎样才能做到这一点Javascript 如何使用jQuery删除具有多个相同数据值的div?,javascript,jquery,html,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> &l
<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>
使用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>
$(函数(){
var日期=[];
$(“div.chat\u timestamp\u group”)。每个(函数(k,v){
var date=$(this.attr('data date');
if(dates.indexOf(date)!=-1){
$(this.remove();
}
否则{
日期。推送(日期);
}
});
});
将字典放在一边,检查字典中是否有日期。如果是这样,remove()
。
vard={};
$('div')。每个(函数(){
var elm=$(此),
日期=elm.attr(“数据日期”);
如果(d中的日期){
elm.remove();
}
否则{
d[日期]=日期;
}
});代码>
div:before{
内容:attr(数据日期);
}
下面是一个用于删除不需要的div的小片段
var divDates=[];
$('div.chat\u timestamp\u group')。每个(函数(i,div){
var dataDate=$(div.attr('data-date');
if(jQuery.inArray(dataDate,divDates)>-1){
$(div.remove();
}否则{
divDates.push(数据日期);
}
});代码>
div.chat\u timestamp\u组,
div.chat\u时间戳\u组0{
边框:2倍实心#000000;
}
之前
2016年3月8日
2016年3月8日
2016年3月14日
2016年3月14日
之后
2016年3月8日
2016年3月8日
2016年3月14日
2016年3月14日
您可以使用.filter()
var res=[];
var elems=$(“.chat\u timestamp\u group”).filter(函数(i,el){
if(res.indexOf($(el.data(“日期”))=-1){
res.push($(el).数据(“日期”);
返回真值
}否则{
返回错误
}
});
console.log(元素)
试试这个
var found = {};
$('.chat_timestamp_group').each(function() {
var value = $(this).data('date');
if (found[value])
$(this).remove();
else
found[value] = true;
});
您可以利用$.uniqueSort()
,$.map()
,.outerHTML
,.replaceWith()
var elems=$(“.chat\u timestamp\u group”);
变量过滤器=$.uniqueSort($.map(元素,函数(元素)){
返回el.outerHTML});
替换元素(功能(i){
返回筛选器[i]| |“”
});代码>
2016年3月8日
2016年3月8日
2016年3月14日
2016年3月14日
这是否回答了您的问题?