jQuery:获取jQuery中隐藏元素的高度

2022-08-30 00:29:40

我需要获取隐藏在 div 中的元素的高度。现在,我显示 div,获取高度,并隐藏父 div。这似乎有点傻。有没有更好的方法?

我正在使用jQuery 1.4.2:

$select.show();
optionHeight = $firstOption.height(); //we can only get height if its visible
$select.hide();

答案 1

你可以做这样的事情,虽然有点笨拙,但忘记它是否已经是绝对的:position

var previousCss  = $("#myDiv").attr("style");

$("#myDiv").css({
    position:   'absolute', // Optional if #myDiv is already absolute
    visibility: 'hidden',
    display:    'block'
});

optionHeight = $("#myDiv").height();

$("#myDiv").attr("style", previousCss ? previousCss : "");

答案 2

我在获取隐藏元素宽度时遇到了同样的问题,所以我编写了这个插件调用jQuery Actual来修复它。而不是使用

$('#some-element').height();

$('#some-element').actual('height');

将为您提供隐藏元素的正确值或具有隐藏父级的元素。

完整文档请参阅此处。页面中还包含一个演示。

希望这有帮助:)