日期:2014-05-17  浏览次数:20572 次

innerHTML 中p标签的问题

今天在项目过程中遇到了一个非常郁闷的问题。

??? 问题:? 在js中构造String, 把它添加到某一个元素上。

??? 代码: var str = '<p><a ...> wjboy49 </a></p>';

?????????????? var obj? = document.getElementById("obj");

????????????????? obj.innerHTML=str;

???? HTML: <p id="obj"></p>

? 就这么一个小小的程序它居然在IE下报错,FF下没事。最后终于找到了原因。

?

p标签,从语意上来讲,是一个段落;从级别来讲是块级元素,可以有自己的宽和高。但P和其他的块级元素,比如 DIV,是有区别的。标准中规定P不能嵌套块级元素,包括不能嵌套P本身。实践中如果有P嵌套了块元素,可能会出现未知的错误。

原文:The P element represents a paragraph. It cannot contain block-level elements (including P itself).

?

应该是IE下p标签不允许嵌套导致的。