【问题标题】:Insert Text Node before Text Node without merging in Chrome在文本节点之前插入文本节点而不在 Chrome 中合并
【发布时间】:2020-12-23 05:26:43
【问题描述】:

我想在另一个文本节点之前插入一个文本节点,如下所示:

<p id="4">text<b>!</b></p>
document.getElementById("4").childNodes[0].before("more ");
<p id="4">more text<b>!</b></p>

这很好用,除了在 Chrome 中它会合并文本节点:

<p>[#text more text]<b>!</b></p>

在 Firefox 中,文本节点不会合并:

<p>[#text more ][#text text]<b>!</b></p>

如何让 Chrome 像 Firefox 一样运行?我已经确定它与before() 方法无关,因为我尝试了其他插入文本的方法。我对 jQuery 解决方案不感兴趣。

【问题讨论】:

    标签: javascript google-chrome firefox dom


    【解决方案1】:

    此解决方案兼容所有浏览器

    let element = document.getElementById("4");
    element.innerText =  "more " + element.innerText;
    &lt;p id="4"&gt;text&lt;/p&gt;

    【讨论】:

    • 我实际上希望创建一个新的文本节点。
    猜你喜欢
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-14
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多