我的网页中有隐藏元素,我需要获取该元素的高度。我已经尝试过使用 .clientHeight、offsetHeight、.height() 和 window.getComputedStyle,但在附加场景中没有这样的工作。有没有什么技巧可以在不添加任何插件的情况下获得高度。小提琴
HTML
<div class="frame">
<p>some text some text some text some text</p>
</div>
jQuery
$('p').height()
我的网页中有隐藏元素,我需要获取该元素的高度。我已经尝试过使用 .clientHeight、offsetHeight、.height() 和 window.getComputedStyle,但在附加场景中没有这样的工作。有没有什么技巧可以在不添加任何插件的情况下获得高度。小提琴
HTML
<div class="frame">
<p>some text some text some text some text</p>
</div>
jQuery
$('p').height()
您可以在用户看不到它的屏幕外渲染它,获取它的高度,然后将元素恢复正常。
它比使用更好,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');
小提琴链接:http: //jsfiddle.net/HfyfX/
var p = $('.frame p').clone().css('display', 'none');
$('body').append(p);
alert(p.height()); // 19
p.remove();
工作示例:http: //jsfiddle.net/D9PyE/
要获取隐藏元素的高度,您需要设置 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'});
这是小提琴
alert($('div').removeClass('frame').css('visibility','hidden').find('p').height());
$('div').addClass('frame').css('visibility','visible');
如果你愿意,你可以试试这个。:)