首页 > 解决方案 > 使用 jQuery 删除所有具有相同 html 值的 div

问题描述

我有以下html结构

 <div class="messagesdate">03 Aug, 2021</div>
  <div class="messagesdate">03 Aug, 2021</div>
  <div class="messagesdate">03 Aug, 2021</div>
  <div class="messagesdate">04 Aug, 2021</div>
  <div class="messagesdate">04 Aug, 2021</div>

我怎样才能做一个全局函数,它将贯穿所有 div 并删除所有具有相同日期的除第一个之外的所有 div?

这就是我到目前为止所做的,我被卡住了

var found = {};
        $('.messagesdate').each(function (i) {
            var $this = $(this);
            if (found[$this.html()]) {
                $this.remove();
            } else {
                found[$this.html()] = true;
            }
        });

标签: javascriptjqueryasp.net-mvc

解决方案


不用jQuery就可以完成

const dates = {};
document.querySelectorAll("div.messagesdate")
  .forEach(div =>
    dates[div.textContent] ? div.remove() : dates[div.textContent] = 1);
<div class="messagesdate">03 Aug, 2021</div>
<div class="messagesdate">03 Aug, 2021</div>
<div class="messagesdate">03 Aug, 2021</div>
<div class="messagesdate">04 Aug, 2021</div>
<div class="messagesdate">04 Aug, 2021</div>


推荐阅读