我正在尝试计算设置为display的TR的高度:none,但是,jquery height扩展方法每次都返回0。当然,当它可见时,它返回正确的值。从我的理解和过去的经验来看,我不知道为什么会发生这种情况,因为即使隐藏它也不应该返回高度?无论如何,任何帮助将不胜感激!
谢谢!
答案 0 :(得分:4)
不,display:none
的元素不占用文档空间,因此没有维度。
然后,预期从元素的矩形空间(例如offsetWidth
或offsetHeight
)计算的属性将返回0
。
编辑:获取隐藏元素的维度很难。根据您的具体情况,this answer may be of some help.
答案 1 :(得分:1)
Rotatin是对的。我以前做过的事情,当我真的需要知道元素的高度时,是使用jquery获取高度,将其存储在元素的数据对象中,然后在页面加载后隐藏元素。
对于包含大量元素的页面来说,这将是不雅观的(因为整个页面必须在隐藏元素之前加载)才会显得滞后。
但是,如果你需要这种技术,它可以这样完成:
$('.should_be_hidden').each(function() {
$(this).data('height',$(this).height()).hide();
});
如果您需要为对象设置动画,这通常很有用。
要获得高度,需要时......你可以这样做:
var element_height = $('#some_element').data('height');