Javascript:如果另一个元素高于对象内的X像素,则为元素添加边距。页面上有多个对象

时间:2018-04-11 12:02:22

标签: javascript jquery

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

任务:当元素A的高度低于40px时,则添加到元素B 22px margin-top。

然而,页面上有许多对象,下面的代码只找到第一个元素A(具有类.list名称)并为所有元素B添加边距(具有类.product-image-container)。

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()

    previewLayer.frame = camView.bounds
}

提前感谢您提供任何帮助

罗布

1 个答案:

答案 0 :(得分:1)

这是您需要的解决方案,

  • 使用list-name函数循环遍历所有$('.list-name').each()类。
  • 使用product-image-container
  • 让下一个(obj).next('.product-image-container')更接近它
  • 根据需要改变css,$(obj).next('.product-image-container').css('margin-top', '20px')



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

});

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>

<div>
  <div class="list-name" style="height: 20px">list-name 1</div>
  <div class="product-image-container">product-image-container 1</div>
</div>

<div>
  <div class="list-name" style="height: 40px">list-name 2</div>
  <div class="product-image-container">product-image-container 2</div>
</div>


</body>
</html>
&#13;
&#13;
&#13;

请运行以上代码段

Here is a Working DEMO