我的网页中隐藏了元素,我需要获得该元素的高度。我已尝试使用.clientHeight,offsetHeight,.height()和window.getComputedStyle,但在附加方案中没有。有没有任何技巧可以在不添加任何插件的情况下获得高度。 fiddle
HTML
<div class="frame">
<p>some text some text some text some text</p>
</div>
Jquery的
$('p').height()
答案 0 :(得分:1)
您可以在屏幕外渲染,用户无法看到它,获得高度,然后将元素恢复正常。
这比使用visibility: visible
更好,因为它不会破坏页面上其他元素的位置。
HTML
<div class="frame">
<p>some text some text some text some text</p>
</div>
CSS
.frame {
width: 120px;
display: none;
}
.offscreen {
position: fixed !important;
left: -9999px !important;
display: inline !important;
}
的JavaScript
$('.frame').addClass('offscreen');
alert('The hieght of \'p\' is: ' + $('p').height() + 'px');
$('.frame').removeClass('offscreen');
答案 1 :(得分:1)
var p = $('.frame p').clone().css('display', 'none');
$('body').append(p);
alert(p.height()); // 19
p.remove();
答案 2 :(得分:0)
这是FIDDLE
alert($('div').removeClass('frame').css('visibility','hidden').find('p').height());
$('div').addClass('frame').css('visibility','visible');
如果您愿意,可以试试这个。 :)
答案 3 :(得分:0)
<强> CSS: - 强>
.frame { width:120px; visibility: hidden;}
答案 4 :(得分:0)
要获得隐藏元素的高度,您需要设置CSS:
$(".frame").css({ 'position': 'absolute', 'visibility': 'hidden', 'display': 'block' });
并且在获得元素的高度之后再次设置css:
$(".frame").css({'position':'static','visibility':'visible', 'display':'none'});
$(".frame").css({ 'position': 'absolute', 'visibility': 'hidden', 'display': 'block' });
alert($('p').height());
$(".frame").css({'position':'static','visibility':'visible', 'display':'none'});