javascript - 使用 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;
}
});
解决方案
不用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>
推荐阅读
- reactjs - 单击按钮时尝试在反应js中显示模式
- android - baseadapter中的保存值按钮增量
- python - Python - 如何在列表中保持最小数字(从字符串转换为整数)?
- javascript - 在回调函数中访问全局变量
- system.reactive - 有没有告诉订阅观察者数量的 Rx.Net Operator?
- python - ValueError: int() 的无效文字,基数为 16
- javascript - React 无法对未定义的属性路径做出反应
- python - Python 发布请求后请求来源无效
- database - 透明表到下拉列表 ABAP
- homebrew - 为什么我的 `brew list` 会被填充到未知库中,我该如何摆脱它们?