首页 > 解决方案 > 在文本节点之前插入文本节点而不在 Chrome 中合并

问题描述

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

<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 解决方案不感兴趣。

标签: javascriptgoogle-chromefirefoxdom

解决方案


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

let element = document.getElementById("4");
element.innerText =  "more " + element.innerText;
<p id="4">text</p>


推荐阅读