为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Javascript 中删除父节点中重复的 childNode 元素?

如何在 Javascript 中删除父节点中重复的 childNode 元素?

郎朗坤 2023-05-25 17:25:42
如何从父元素中删除任何重复的子节点,以便父元素中具有相同 innerText 的元素不超过 1 个?下面的 HTML 示例说明之前和之后的内容。HTML<div id="parent">    <div class="child">hello</div>    <div class="child">hello</div>    <div class="child">world</div>    <div class="child">world</div></div>目标<div id="parent">    <div class="child">hello</div>    <div class="child">world</div></div>
查看完整描述

2 回答

?
梦里花落0921

TA贡献1772条经验 获得超6个赞

尝试这个。


var children = document.querySelectorAll(".child")

var tmpTexts = []

for (const c of children) {

    if (tmpTexts.includes(c.innerText)) continue

    tmpTexts.push(c.innerText)

    c.parentNode.removeChild(c)

}

<div id="parent">

        <div class="child">hello</div>

        <div class="child">hello</div>

        <div class="child">world</div>

        <div class="child">world</div>

</div>


查看完整回答
反对 回复 2023-05-25
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

这是另一种方法:


const children = document.querySelectorAll('.child');


function filterChildren(text, i, textArray) {

  if ( textArray.indexOf(text) <= textArray.lastIndexOf(text) && textArray.indexOf(text) !== i ) {

    children[i].parentNode.removeChild( children[i] )

  }

}


Array

  .from(children)

  .map( child => child.innerHTML )

  .forEach(filterChildren);

<div id="parent">

        <div class="child">hello</div>

        <div class="child">hello</div>

        <div class="child">world</div>

        <div class="child">world</div>

</div>


查看完整回答
反对 回复 2023-05-25
  • 2 回答
  • 0 关注
  • 131 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信