Javascript HTMLDOM的问题是,如何获取p标记的高度?

Javascript HTMLDOM的问题是,如何获取p标记的高度?,javascript,html,dom,tags,Javascript,Html,Dom,Tags,假设我们有以下代码: <html> <head> </head> <body> <p id="paragraph"> <h1>HELLO</h1> dfsdfdsfdsfsdfsd<br /> sadadsadsad<br />asdsadsadsadsadsadsad<br /> asdsadsadsad

假设我们有以下代码:

    <html>
    <head>
    </head>
    <body>
    <p id="paragraph">
    <h1>HELLO</h1>
    dfsdfdsfdsfsdfsd<br />
    sadadsadsad<br />asdsadsadsadsadsadsad<br />
    asdsadsadsadsadsad
    </p>
   <script type="text/javascript">
    alert(document.getElementById('paragraph').offsetHeight);</script>
    </body></html>
如何解决这个问题?这是不是一个错误


我已经用firefox、chrome、opera(最新版本)在ubuntu上测试了它,但不起作用。如果
元素是
的后代,则无效,因此浏览器将其移出,将
保留为空,给您0高度

Safari中的结果标记如下所示:

<p id="paragraph"></p>
<h1>HELLO</h1>
dfsdfdsfdsfsdfsd<br>
sadadsadsad<br>asdsadsadsadsadsadsad<br>
asdsadsadsadsadsad
<p></p>

你好 DFDSFDSFSDFSD
SADADSAD
ASDSAD
asdsadsad


@loannis-浏览器尝试更正无效的标记。未闭合的标签、未正确放置的标签等。他们尽最大努力猜测最佳修正,但结果并非总是如你所愿。最后,您只需要从
内部删除
,或者将其更改为
。我认为这很愚蠢。为什么我不能在中插入,而我可以在一个???中插入?这是DOM结构的基本原理-有关更多信息,请参考W3C标准-概念上:因为
是一个段落。你怎么能把标题放在段落里?从技术上讲:因为
是一个带有可选结束标记的元素,所以如果解析器看到一个新的块级元素,它会猜测您只是省略了

,这是HTML 2.0时代最常见的做法,而且仍然很普遍。否则,这些块就会堆积起来,在页面的末尾,你会留下100个嵌套的
标记。HTML解析充满了这样的“方便”怪癖;如果您需要更可预测的,那么您必须使用XHTML.xm,似乎我也无法在中插入。是否有关于允许在内使用哪些元素的参考???
<p id="paragraph"></p>
<h1>HELLO</h1>
dfsdfdsfdsfsdfsd<br>
sadadsadsad<br>asdsadsadsadsadsadsad<br>
asdsadsadsadsadsad
<p></p>