.innerhtml 将 <br/> 标签转换为 <br>

Posted

技术标签:

【中文标题】.innerhtml 将 <br/> 标签转换为 <br>【英文标题】:.innerhtml converts <br/> tag to <br> 【发布时间】:2020-04-16 05:54:27 【问题描述】:

我正在尝试获取包含自关闭 br 标签&lt;br/&gt;html 元素的 innerhtml,但使用 .innerhtml 会将 &lt;br/&gt; 转换为 &lt;br&gt; 标签。我正在使用 IE10 并且它没有 XHTML 解析器来获取 innerhtml。这是html:

<div>
<span>line 1<br/>line 2<br/>line 3</span>
</div>

我想保留自结束标记,但想避免使用正则表达式。谁能帮助我用其他方法来实现这一目标?

【问题讨论】:

***.com/questions/18990441/innerhtml-br-breaking 请看看这是否有帮助 不适用于 IE10 ???? 以后需要保存成xhtml格式 当您将 HTML 文件作为 XHTML 开始提供时,它可以正常工作。 【参考方案1】:

innerHTML 将其转换为 &lt;br&gt;,因为它在 html 中应该是 &lt;br&gt;。如果您想在 XHTML 中将其用作 &lt;br /&gt;,则可以在获取内部 html 后将 &lt;br&gt; 替换为 &lt;br /&gt;。您可以参考以下示例:

var a = document.getElementsByTagName("div")[0];
var b = a.innerHTML.split("<br>").join("<br />");
console.log(b);
<div>
  <span>line 1<br />line 2<br />line 3</span>
</div>

【讨论】:

以上是关于.innerhtml 将 <br/> 标签转换为 <br>的主要内容,如果未能解决你的问题,请参考以下文章

Javascript:帮助用 innerHTML 的 '<br>' 替换 '<div>'!

innerHTML 执行多行

innerHTML 的内部工作原理

JavaScript HTML DOM 事件

如何根据它们在 JavaScript 中的顺序更改标签 innerHTML?

R:rvest提取innerHTML