分配的innerHTML导致不同的结构

问题描述 投票:0回答:1

我尝试将

<p><div></div>Hello</p>
分配给innerHTML,但它导致了不同的结构:
<p></p><div></div>Hello<p></p>
。这是错误还是预期行为?
<div>
元素不能放在
<p>
元素里面吗?

代码:

const div = document.createElement("div")
div.innerHTML = "<p><div></div>Hello</p>";
console.log(div.innerHTML);

预期输出:

<p><div></div>Hello</p>

我得到的结果:

<p></p><div></div>Hello<p></p>
javascript html
1个回答
0
投票

<div>
放在
<p>
中是无效的 HTML。因此,许多浏览器在遇到起始
<p>
标签时会自动关闭打开的
<div>
标签。

要了解特定类型的元素可以有效包含哪些内容,您可以查阅 MDN Web Docs 上元素文档页面的“技术摘要”部分或查阅 HTML 规范。

对于段落元素,文档指出其允许的内容是“短语内容”。

短语内容是仅元素子集所属的特定内容类别。

<div>
元素不是措辞内容,因此它不能放入段落中。

© www.soinside.com 2019 - 2024. All rights reserved.