为什么 <p>
有两个元素当我只使用一个 <p>
标签?
如果<center>
标签代替 <pre>
,结果是一样的。
如果<b>
标签代替 <pre>
,a.length的结果是1。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p><pre>name: id:</pre></p>
<script>
a = document.getElementsByTagName("p");
document.write("LEN:"+a.length+"<BR>");
for(i=0;i<a.length;i++){
document.write(a[i].innerHTML+"<BR>");
}
</script>
最佳答案
<pre>
不能在里面 <p>
。因此,当 HTML 解析器遇到 <pre>
时里面<p>
,它将关闭 <p>
第一的。然后它遇到</p>
,一个没有开始标签的结束标签,并假设您想要 <p>
。最终的结构是:
<p></p>
<pre>...</pre>
<p></p>
你怎么知道<pre>
不能在里面 <p>
?请参阅<p>
上MDN ,甚至更好 in HTML spec ,并注意“允许的内容:措辞内容”。查看什么是“短语内容”,可以发现它不包括 <pre>
.
关于javascript - 我可以将 <PRE> 标签嵌入到 <P> 标签中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60500355/