Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过javascript删除重复的元素_Javascript_Html_Dom_Frontend - Fatal编程技术网

通过javascript删除重复的元素

通过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

如何使用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>  
必须成为:

运动 消息
汽车

您可以通过以下步骤完成此操作:

选择所有元素并创建包含所有元素文本的集合 然后使用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。