jQuery height()与clientHeight不同

jQuery height()与clientHeight不同,jquery,height,Jquery,Height,所以我有一个元素: <div class="obj"> <img width="896" height="595" src... /> <div class="details"> <h2>Title</h2> <p>...</p> </div> </div> <div class="obj"> <img width="896" height

所以我有一个元素:

<div class="obj">
  <img width="896" height="595" src... />
  <div class="details">
    <h2>Title</h2>
    <p>...</p>
  </div>
</div>
<div class="obj">
  <img width="896" height="595" src... />
  <div class="details">
    <h2>Title</h2>
    <p>...</p>
  </div>
</div>
在Chrome的element inspector中,.obj的高度为720(与图像相同)。但是,我在控制台中为每个元素获取0

图像没有浮动,因此.obj在css中包含它的子对象。我真的不知道会出什么问题,为什么jQuery不返回720


这可能与CSS有关吗

处理window.onload事件以确保加载所有图像,例如

$(window).load(
  function() {
    $objs = $('.obj');
    $objs.each(function() {
        console.log($(this).height());
    }
  }
);  

处理window.onload事件以确保加载所有图像,例如

$(window).load(
  function() {
    $objs = $('.obj');
    $objs.each(function() {
        console.log($(this).height());
    }
  }
);  

它可能与CSS有关。如果不发布CSS,很难知道。(您说Chrome报告obj的高度为720,与图像相同,但图像的高度设置为595)


这说明了它是如何工作的

可能与CSS有关。如果不发布CSS,很难知道。(您说Chrome报告obj的高度为720,与图像相同,但图像的高度设置为595)


这说明了它是如何工作的

ready()
处理程序与正在加载的图像无关。使用
$(窗口)。加载(…)
以确保它们已加载。
ready()
处理程序与正在加载的图像无关。使用
$(窗口)。加载(…)
以确保它们已加载。我有“height:auto;”在css中,它在jQuery中返回到0。我不确定这对我有什么意义,但我已经修好了。顺便说一句,720/595版是个打字错误,对不起。谢谢你!我有“身高:自动;”在css中,它在jQuery中返回到0。我不确定这对我有什么意义,但我已经修好了。顺便说一句,720/595版是个打字错误,对不起。谢谢你!