我正在寻找循环div,检查每个div是否包含特定子div中的内容,如果是,则向div添加一个类。
$('.img-banner').each(function( index, element ) {
if ( $(element).find('.img-banner-content').length > 0 ) {
$(element).addClass("has-content");
}
});
我在这里错过了一些简单的东西,可以随便摇一摇。问题是它正在为所有div添加“has-content”类。
减少测试用例:JSFiddle
谢谢大家。
答案 0 :(得分:4)
您需要实际检查div中是否有文字。
$(this).find('.img-banner-content').length
将始终返回true,因为它实际上并未检查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");
}
});
});