如何使用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>
</div>
必须成为:
您可以按照以下步骤操作:
Set
的所有文本的<li>
forEach
遍历元素列表>Set
是否不包含当前元素的innerHTML
,然后删除该元素Set
中删除文本注:
id
在整个文档中应该是唯一的。两个元素不能具有相同的id
const tags = [...document.querySelectorAll('#tags > li')]; const texts = new Set(tags.map(x => x.innerHTML)); tags.forEach(tag => { if(texts.has(tag.innerHTML)){ texts.delete(tag.innerHTML); } else{ tag.remove() } })
<div id="tags"> <li>sport</li> <li>news</li> <li>sport</li> <li>sport</li> <li>cars</li> </div>
您可以使用一个循环来遍历所选节点列表而无需太多开销,如下所示: