jQuery:$('div.myclass').height()不准确

Rap*_*tor 6 html jquery

可能重复:
为什么jquery .height()在chrome上得到不同的结果?

我有一个<div>CSS类myclass.CSS类如下:

.myclass {
    position: absolute;
    width: 192px;
    font-size: 11px;
    background-color: #FFF;
    padding: 15px 15px 0;
    box-shadow: 0 1px 3px rgba(34, 25, 25, 0.4);
    -moz-box-shadow: 0 1px 3px rgba(34, 25, 25, 0.4);
    -webkit-box-shadow: 0 1px 3px rgba(34, 25, 25, 0.4);    
    display: block;
}
Run Code Online (Sandbox Code Playgroud)

它没有指定高度.内容由PHP动态加载.在jQuery中$(document).ready(function() { });,我调试div的高度:

console.log($('div.myclass').height()); // the result = 330
Run Code Online (Sandbox Code Playgroud)

HTML:

<div class="myclass">
<img src="image.png" />
<p>Text here text here</p>
</div>
Run Code Online (Sandbox Code Playgroud)

但是,如果我Inspect Element在Google Chrome中使用该功能,则会显示531px.为什么会有区别?我怎样才能获得531px价值?

更新:$(this).outerHeight(); // 345px, as there is 15px margin

und*_*ned 17

尝试将您的代码放在窗口加载处理程序中,同样由于您的元素具有15px填充属性,您应该使用outerHeight方法:

$(window).load(function(){
    console.log($('div.myclass').outerHeight()); 
});
Run Code Online (Sandbox Code Playgroud)

请注意,outerHeight接受布尔值,false表示排除边距,true表示添加边距,另请注意outerHeight返回第一个匹配元素的高度与该类名称.

  • @ShivanRaptor当DOM准备好时,就会触发就绪事件,当完全加载所有图像和iframe时,会触发事件. (2认同)