获得<div>的高度 - 返回'undefined'</div>

时间:2012-11-18 14:42:06

标签: javascript html

我在获取a的高度时遇到问题(下面代码中的那个,class =“post_div”)。我希望返回一个document.write返回HTML主体 - 也许稍后将其用作其他元素的高度,我希望它是平等的。我已经尝试了所有可能的代码来获取这样一个元素的高度,但每次它返回'undefined'。我也试过为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>

希望你能帮忙!谢谢!

3 个答案:

答案 0 :(得分:7)

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

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

此外,此计算必须在 之后 完成您正在计算的元素(因此要么将<script>放在元素之后,要么推迟onload或类似的执行。

答案 1 :(得分:1)

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

示例代码:

<div id=getme>
    some text to give it height.
</div>
<script>
    document.write(document.getElementById("getme").clientHeight);
</script>

答案 2 :(得分:0)

要获取height content的{​​{1}},您只需要以下代码:

<div>

请在此处查看示例:http://jsfiddle.net/cayRP/