Javascript:向一个对象添加边距顶部,对象和其他对象位于对象A内部,页面上有多个对象

Javascript:向一个对象添加边距顶部,对象和其他对象位于对象A内部,页面上有多个对象,javascript,Javascript,我有一个对象(div),里面有四个元素(带类) 我想做的是:当元素A的高度低于40px时,将其添加到元素B的边缘顶部20px 但是,页面上有许多对象 <div class="list"> <div class="block"> <div class="list-name" style="height: 20px">element A</div> <div class="div1">another div here&l

我有一个对象(div),里面有四个元素(带类)

我想做的是:当元素A的高度低于40px时,将其添加到元素B的边缘顶部20px

但是,页面上有许多对象

<div class="list">
  <div class="block">
    <div class="list-name" style="height: 20px">element A</div>
    <div class="div1">another div here</div>
    <div class="div2">another div here</div>
    <div class="product-image-container">element B</div>
  </div>

  <div class="block">
    <div class="list-name" style="height: 50px">element A</div>
    <div class="div1">another div here</div>
    <div class="div2">another div here</div>
    <div class="product-image-container">element B</div>
  </div>

  (...)

</div>

元素A
这里是另一个分区
这里是另一个分区
元素B
元素A
这里是另一个分区
这里是另一个分区
元素B
(...)
到目前为止我试过这个。然而,只有当div中只有两个元素时,它才起作用

$(document).ready(function(){
    $('.list-name').each(function(index, obj){
    console.log($(obj).height())
    if($(obj).height() < 40)
    {
       $(obj).next('.product-image-container').css('margin-top', 20)
    }
    });


});
$(文档).ready(函数(){
$('.list name')。每个(函数(索引,obj){
console.log($(obj.height())
如果($(obj).height()<40)
{
$(obj).next('.product image container').css('margin-top',20)
}
});
});
非常感谢您的帮助

Rob只对下一个元素有效

改为使用包含同一级别上的所有元素的

$(obj).siblings('.product-image-container').css('margin-top', 20)

或者另一种常用模式是查找一个共同的祖先,并在该父级中查找()

$(obj).closest('.block').find('.product-image-container').css('margin-top', 20)