如果某些条件成立,我想调整div的高度。
具体来说,我想查找任何包含textarea且其中存在错误消息div的.element div。

$('.element').each(function() {
    if ( $(this).find('textarea') && $(this).find('.error-message') ) {
        $(this).css('min-height', '80px');
    }
});


在这种结构下,只有中间div应该具有额外的高度:

<div class="element">
  <input type="text" />
</div>
<div class="element">
  <div class="error-message"></div>
  <textarea></textarea>
</div>
<div class="element">
  <input type="text" />
</div>

最佳答案

.length在这里将是您的朋友:



$('.element').each(function() {
  if ($(this).find('textarea').length && $(this).find('.error-message').length) {
    $(this).css('min-height', '80px');
  }
});

div {
  border: 1px solid #999;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="element">
  <input type="text" />
</div>
<div class="element">
  <div class="error-message"></div>
  <textarea></textarea>
</div>
<div class="element">
  <input type="text" />
</div>





在使用选择器找到合适的元素时,为了在if条件下测试它们,您将需要使用.length来返回jQuery对象中的元素数。

10-05 20:41
查看更多