通过javascript删除重复的元素
如何使用js删除div中的重复li通过javascript删除重复的元素,javascript,html,dom,frontend,Javascript,Html,Dom,Frontend,如何使用js删除div中的重复li <div id="tags"> <li id="tag">sport</li> <li id="tag">news</li> <li id="tag">sport</li> <li id="tag">sport</li> <li id="tag">cars</li> </d
<div id="tags">
<li id="tag">sport</li>
<li id="tag">news</li>
<li id="tag">sport</li>
<li id="tag">sport</li>
<li id="tag">cars</li>
</div>
必须成为:
运动
消息
汽车您可以通过以下步骤完成此操作: 选择所有元素并创建包含所有元素文本的集合 然后使用forEach循环遍历元素列表 检查集合是否不包含当前元素的innerHTML,然后删除该元素 如果集合包含文本,则不要删除元素,而是从集合中删除文本 注意:元素的id在整个文档中应该是唯一的。两个元素不能具有相同的id const tags=[…document.querySelectorAll'tags>li']; const text=new Settags.mapx=>x.innerHTML; tags.forEachtag=>{ iftexts.hastag.innerHTML{ text.deletetag.innerHTML; } 否则{ 标记。删除 } } 运动 消息 运动 运动 汽车
您可以使用一个循环在选定节点列表上进行迭代,而不会产生太大的开销,如下所示: 让元素=document.querySelectorAllli; textArr=[]; 元素。foreachd,i{ iftextArr.indexOfd.innerText>-1{ d、 移除; } 否则{ textArr.pushd.innerText; } }; 运动 消息 运动 运动 汽车
迭代所有的li,使用类似集合的东西来跟踪已经看到的文本,如果之前已经看到文本,则删除li。从元素中删除id属性,可以对它们使用class属性。Id的需要是唯一的。重复的Id和没有ul元素,请检查html。