隐藏TR的JQuery高度返回0

时间:2009-10-09 18:45:45

标签: jquery html css html-table

我正在尝试计算设置为display的TR的高度:none,但是,jquery height扩展方法每次都返回0。当然,当它可见时,它返回正确的值。从我的理解和过去的经验来看,我不知道为什么会发生这种情况,因为即使隐藏它也不应该返回高度?无论如何,任何帮助将不胜感激!

谢谢!

2 个答案:

答案 0 :(得分:4)

不,display:none的元素不占用文档空间,因此没有维度。

然后,预期从元素的矩形空间(例如offsetWidthoffsetHeight)计算的属性将返回0

参考:CSS1 Formatting model

编辑:获取隐藏元素的维度很难。根据您的具体情况,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');