【问题标题】:remove parent without removing childs in vanilla javascript删除父级而不删除香草javascript中的子级
【发布时间】:2020-05-22 22:28:51
【问题描述】:

我已阅读 this question 删除父节点而不删除子节点,但如果子节点是节点类型 3(文本),则它不起作用

<div>
    <h1>
        <u>
            Hello world
            <i> How are you ? </i>
        </u>
    </h1>
</div>

例如,我想使用 vanilla javascript 删除 &lt;u&gt; 标记(Hello world 节点类型文本和 i 的父级)。

删除u标签后我想拥有:

<div>
    <h1>
        Hello world
        <i> How are you ? </i>
    </h1>
</div>

【问题讨论】:

  • 你为实现你的目标做了什么?
  • 所以...element.parentNode.outerHTML = element.parentNode.innerHTML?或者您是否还需要保留所有 JS 事件绑定等? (这种情况请refine your question
  • 我会推荐 element.parentElement.outerHTML 然后 parentNode。欲了解更多信息,请访问:stackoverflow.com/questions/8685739/…,但基本上这是更安全的选择。

标签: javascript dom


【解决方案1】:

答案很简短

在此question 中使用https://stackoverflow.com/users/7230746/tom-oeser 答案重新定义首先采用文本节点父级的逻辑。

function unwrap(node) {
    node = node.parentNode;
    node.replaceWith(...node.childNodes);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多