jQuery .html()方法关闭<p>标签问题?</p>

时间:2014-04-17 21:34:31

标签: javascript jquery html ajax

我通过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标签发生了什么?

1 个答案:

答案 0 :(得分:7)

javascript解析器执行此操作的原因实际上是因为<p>标记不允许在HTML规范中包含<div>标记。请参阅html规范和此问题(Why <p> tag can't contain <div> tag inside it?)。