表标签不嵌套在DOM中的P标签内

Muz*_*zza 4 html javascript

我一直在玩innerHTML内容的动态更改,并注意到嵌套在其他元素中的表的一些奇怪的行为.

例如,表格p/pp table/table/p/form没有将表格视为第二个p的innerHTML,而是将表格列为该p标签的兄弟而不是子标签.

我认为这是一个众所周知的行为.

我的知识分子有什么差距?

TIA

mu *_*ort 5

你不能放在<table>里面<p>.从HTML4规范:

<!ELEMENT P - O (%inline;)* -- paragraph -->
[...]
它不能包含块级元素(包括P本身).

然后,如果您查看%inline;元素是什么,您将无法<table>在列表中找到.

对于HTML5,<p>可以包含措辞内容:

允许的内容

短语内容

而措辞的内容是字符数据和措辞元素,措辞要素是:

a或em或强或小 ...... 米

<table>该列表中没有.

所以,你要插入无效的HTML和浏览器正在改变<p><table></table></p>成<p></p><table></table>以获得有效的HTML(即移动台的孩子到一个兄弟姐妹).

如果您为浏览器提供无效的HTML,浏览器将猜测您的真实含义并继续猜测.