数组包含具有重复id的元素

<div data-id='48444884'>MM</div>
<div data-id='11101100'>LL</div>
<div data-id='72277727'>TT</div>
<div data-id='72277727'>TT</div>
<div data-id='48444884'>MM</div>
<div data-id='11101100'>LL</div>
<div data-id='72277727'>TT</div>

谁能告诉我隐藏副本的最好方法吗

我试着这么做:

  • 设置"显示:无隐藏所有div元素
  • 创建具有唯一id的数组
  • 为中具有唯一ID的每个元素设置"显示:块"

我知道如何通过新的Set()创建具有唯一ID的array.映射方法:

const uniqId = new Set([...document.querySelectorAll('[data-id]')].map(id => id.dataset.id));

或通过arr.filter:

let ids = Array.from(document.querySelectorAll('[data-id]'), id => id.dataset.id);
let uniqeid = ids.filter((element, index) => {
  return ids.indexOf(element) === index;
});
console.log('UNIQE ID:', uniqeid);

但我真的不明白如何通过id改变样式或向数组中的每个元素添加类

谁能给我解释一下正确的方法吗

推荐答案

首先 Select uniqeid为data-id的第一个元素,然后更改style

let ids = Array.from(document.querySelectorAll('[data-id]'), id => id.dataset.id);
let uniqeid = ids.filter((element, index) => {
  return ids.indexOf(element) === index;
});
console.log('UNIQE ID:', uniqeid);

uniqeid.forEach(id=> {
  document.querySelector(`[data-id="${id}"]`).style.display = "block";
});
<div data-id='48444884' style="display: none;">MM</div>
<div data-id='11101100' style="display: none;">LL</div>
<div data-id='72277727' style="display: none;">TT</div>
<div data-id='72277727' style="display: none;">TT</div>
<div data-id='48444884' style="display: none;">MM</div>
<div data-id='11101100' style="display: none;">LL</div>
<div data-id='72277727' style="display: none;">TT</div>

Javascript相关问答推荐

TypScript界面中的Infer React子props

使用复选框在d3.js多折线图中添加或删除线条

在vercel throws上部署带有gunjs的sveltekit应用无法找到模块./' lib/文本编码'

使用i18next在React中不重新加载翻译动态数据的问题

如何将Map字符串,布尔值转换为{key:string;value:bo布尔值;}[]?<>

为什么!逗号和空格不会作为输出返回,如果它在参数上?

还原器未正确更新状态

使用js构造一个html<;ath&>元素并不能使其正确呈现

Angular 形式,从DOM中删除不会删除指定索引处的内容,但会删除最后一项

如果没有页面重新加载Angular ,innerHTML属性绑定不会更新

Phaser3 preFX addGlow不支持zoom

如何组合Multer上传?

自动滚动功能在当前图像左侧显示上一张图像的一部分

未找到用于 Select 器的元素:in( puppeteer 师错误)

在单击按钮时生成多个表单时的处理状态

为什么当雪碧的S在另一个函数中时,Phaser不能加载它?

使用Library chart.js在一个带有两个y轴的图表中绘制两个数据集

KeyboardEvent:检测到键具有打印的表示形式

我想为我的Reaction项目在画布上加载图像/视频,图像正在工作,但视频没有

如果未定义,如何添加全局变量