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标签不允许嵌套导致的。