获取剪辑DIV的完整高度

我如何获得div的高度,其中包括div的剪辑区域?

<div style="height: 20px; overflow: hidden"> content<br>content<br>content<br> content<br>content<br>content<br> content<br>content<br>content<br> </div> 

那么,你不能这样做,但是当你的容器中添加一个内部元素时可能是这样的:

 <div id="element" style="height: 20px; overflow: hidden;"> <p id="innerElement"> <!-- notice this inner element --> content<br />content<br />content<br /> content<br />content<br />content<br /> content<br />content<br />content<br /> </p> </div> 

旁注:包装段落内的内容也是一个很好的做法,再加上一个额外的元素是不是给了那么多的问题,如果有的话… …

和JavaScript:

 var innerHeight = document.getElementById('innerElement').offsetHeight; alert(innerHeight); 

PS对于这个JavaScript的工作,把它放在你的#element div之后,因为如果没有指示的话,在DOM准备就绪之前执行普通的JavaScript。 为了在DOM准备就绪时进行这个工作, 请检查这个 。

但是我build议使用jQuery ,如果您要在您的网站中扩展JavaScript操作,稍后它会派上用场。

另外,jQuery是真正的力量

这样,只需将此脚本添加到<head /> (假设您已包含jQuery):

 $(document).ready(function() { var innerHeight = $('#innerElement').height(); alert(innerHeight); }); 

示例@jsFiddle使用jQuery的方式!

这可以在任何情况下工作,不pipe你有一个文本节点还是一个容器。 这是使用jQuery,但你不需要。

//return the total height. totalHeight = $('#elem')[0].scrollHeight; //return the clipped height. visibleHeight = $('#elem').height();
//return the total height. totalHeight = $('#elem')[0].scrollHeight; //return the clipped height. visibleHeight = $('#elem').height(); 

$('#elem')[0]正在从jquery调用中返回dom元素。 所以你可以在任何使用简单的JavaScript'的dom elem上使用它。

使用费边理念,以下是一种实现您所需要的方法:

 function GetHeight() { var oDiv = document.getElementById("MyDiv"); var sOriginalOverflow = oDiv.style.overflow; var sOriginalHeight = oDiv.style.height; oDiv.style.overflow = ""; oDiv.style.height = ""; var height = oDiv.offsetHeight; oDiv.style.height = sOriginalHeight; oDiv.style.overflow = sOriginalOverflow; alert("Real height is " + height); } 

现场演示和testing案例: http : //jsfiddle.net/yahavbr/7Lbz9/

这不可能afaik。 你可以尝试的是删除这种风格,并设置它使用javascript后,你得到的高度。 不是最优雅的解决scheme,但我认为它是唯一的解决scheme。