7

我在获取 a 的高度时遇到问题(下面代码中的那个,class="post_div")。而且我想在 HTML 正文中返回一个 document.write ——也许稍后将它用作其他元素的高度,我希望它是平等的。我已经尝试了所有可能的代码来获取这样一个元素的高度,但每次它都返回“未定义”。我还尝试为 DIV 设置 height=auto。我几乎可以肯定我的问题与我获得高度的方式无关,但不知道还有什么可能!因此,我选择用我的编码的完整结构来打扰你。JavaScript 被放置在一个单独的文档中,其中仅包含以下语句:

var result=document.getElementById('postHeight').offsetHeight;

我的 HTML 文档看起来像这样

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<head>
<title>...</title>
<link rel="stylesheet" type="text/css" media="all" href="C:\Users\Lasse\Desktop\hg2\hg2.css" />
<script src="C:\Users\Lasse\Desktop\hg2\hg2.js"></script>
</head>
<body>

<script>document.write(result)</script>

<div id="postHeight" class="post_div">
...             
</div>


</body>
</html>

希望你能帮忙!谢谢!

4

2 回答 2

11

没有 ID 的元素postHeight。也许你的意思是

var result=document.getElementById('content').offsetHeight;

此外,此计算必须在加载您正在计算的元素之后<script>完成(因此可以通过将元素放在元素之后,或者延迟执行onload或类似)。

于 2012-11-18T14:45:04.533 回答
1

由于您的脚本标记出现在元素存在于 DOM 之前,因此您无法获得高度。您可以在获取高度之前放置一个等待文档加载的事件处理程序,或者将该脚本移动到页面底部,但您document.write仍然会在元素存在之前被调用。你需要重新考虑你的设计。

示例代码:

<div id=getme>
    some text to give it height.
</div>
<script>
    document.write(document.getElementById("getme").clientHeight);
</script>
于 2012-11-18T15:02:59.267 回答