遍历 Divs 并检查子 Div 是否有内容

Loop Through Divs and Check If Child Div Has Content

我正在寻找遍历 divs,检查每个内容是否在其特定子项 div 中,如果有,请将 class 添加到 div .

  $('.img-banner').each(function( index, element ) {
    if ( $(element).find('.img-banner-content').length > 0 ) {
      $(element).addClass("has-content");
    }
  });

我在这里遗漏了一些简单的东西,可以摇一摇。问题是它将 class "has-content" 添加到所有 divs.

减少测试用例:JSFiddle

谢谢大家

您需要实际检查 div 中是否有文本。

$(this).find('.img-banner-content').length 将始终 return 为真,因为它实际上并不检查 dom 节点是否有任何 innerHTML,只是 dom-ref 是否存在.

所以替换:

if ( $(this).find('.img-banner-content').length > 0 )

有:

if ( $(element).find('.img-banner-content').text().length > 0 )

放在一起:

$(document).ready(function () {
  $('.img-banner').each(function( index, element ) {
    if ( $(element).find('.img-banner-content').text().length > 0 ) {
      $(element).addClass("has-content");
    }
  });
});

https://jsfiddle.net/jg0w257q/