我通过ajax加载一些html并将其插入DOM。以下是收到的数据的一部分,输出到控制台:
<div class="devices">
<h3> Devices </h3>
<p>
<div class="device-icon android-icon"></div>
<div class="device-icon iphone-icon"></div>
<div class="device-icon blackberry-icon"></div>
</p>
</div>
如您所见,p
标签排列正常。但是,当我使用jQuery的html()
方法将数据插入到dom中时,这就是它实际附加的方式:
<div class="devices">
<h3> Devices </h3>
<p></p>
<div class="device-icon android-icon"></div>
<div class="device-icon iphone-icon"></div>
<div class="device-icon blackberry-icon"></div>
<p></p>
</div>
p标签发生了什么?
答案 0 :(得分:7)
javascript解析器执行此操作的原因实际上是因为<p>
标记不允许在HTML规范中包含<div>
标记。请参阅html规范和此问题(Why <p> tag can't contain <div> tag inside it?)。