Jquery获得隐藏元素的高度

时间:2012-02-02 18:21:32

标签: jquery hidden

我试图获取元素高度值的列表,但它返回0 我做了一些研究,看到为了获得元素的高度,该元素必须是可见的 但是当它被隐藏时我想检查它的高度。如果它的高度大于某个值,则使用某些函数然后使其可见。有没有办法做到这一点?

我的意思是:

  1. 检查隐藏元素的高度。
  2. 如果确定值可以使其可见。
  3. 如果没有所需的值,请执行一些功能。
  4. 让它可见。

3 个答案:

答案 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