我试图获取元素高度值的列表,但它返回0 我做了一些研究,看到为了获得元素的高度,该元素必须是可见的 但是当它被隐藏时我想检查它的高度。如果它的高度大于某个值,则使用某些函数然后使其可见。有没有办法做到这一点?
我的意思是:
答案 0 :(得分:17)
你可以show
元素获得高度然后隐藏它,从视觉上你看不出任何差异。
var height = $('elementSelector').show().height();
$('elementSelector').hide();
if(height != <<HeightToCompare>>){
//Code here
}
//Finally make it visible
$('elementSelector').show();
<强> Demo 强>
答案 1 :(得分:6)
一种方法是克隆对象,将克隆定位在视口之外,使其可见,测量克隆,然后销毁它。
所以你有:
<div id="maybe" style="display: none;">
Something
</div>
由于你正在使用jQuery,你可以这样做:
$('#maybe')
.clone()
.attr('id','maybe_clone') // prevent id collision
.css({ // position far outside viewport
'position': 'absolute',
'left': '-1000px'
});
if( $('#maybe_clone').show().height() > 200 ) {
$('#maybe').show();
}
$('#maybe_clone').remove(); // housekeeping
答案 2 :(得分:0)
定位对象以使其对浏览器可见,但对用户不可见: jQuery: Get height of hidden element in jQuery