javascript - 在文本节点之前插入文本节点而不在 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 解决方案不感兴趣。
解决方案
此解决方案与所有浏览器兼容
let element = document.getElementById("4");
element.innerText = "more " + element.innerText;
<p id="4">text</p>
推荐阅读
- regex - 正则表达式匹配两个之间没有空格的字符串#
- c# - .rdlc 本地处理异常中的打印问题
- security - 通过 Jenkins 的 HTTP 主机中毒漏洞进行未经授权的 URL 重定向
- python-3.x - 如果任何实例处于活动状态,它在两种情况下都响应是
- ssl-certificate - 有没有办法在 Ubuntu 18 或更高版本中安装 pkcs12 (p12) 证书?
- sql - pyspark中的分组索引
- swift - iOS 14 MapKit 选择注释图像错误
- html - 点击链接后不清除查询参数
- javascript - 在 JavaScript 中是否有类似可选链接的赋值
- email - 电子邮件中的 MIME 多部分