【发布时间】:2022-01-13 12:49:59
【问题描述】:
查看以下标记:
<div class="careersIntegration__listing" id="careers-listing">
<div class="careersIntegration__accordion">
<div class="careersIntegration__accordion-header">
<span class="careersIntegration__accordion-dept">Sales</span>
</div>
<div class="careersIntegration__accordion-jobs" data-dept="sales"></div>
</div>
<div class="careersIntegration__accordion">
<div class="careersIntegration__accordion-header">
<span class="careersIntegration__accordion-dept">Customer Success</span>
</div>
<div class="careersIntegration__accordion-jobs" data-dept="customer-success">
<figure class="careerCard" data-dept="customer-success">Job</figure>
</div>
</div>
</div>
我试图隐藏 .careersIntegration__accordion 的 .careersIntegration__accordion-jobs 没有子元素的元素。
为简化起见,如果.careersIntegration__accordion-jobs 没有子元素,则隐藏父元素.careersIntegration__accordion。
我在现有的 SO 帖子中看到了示例(请参阅此帖子),但无法在我的实例中使用该方法。请参阅下面我尝试过的帖子:
- jquery if div id has children
- jQuery hide parent div if child div is empty
- css hide div if div has no child with class
使用下面我当前的方法,else 语句被执行,不确定为什么?
$(".careersIntegration__accordion").each(function(){
if( $(this).children(".careersIntegration__accordion-jobs").length == 0 ){
$(this).parent().hide();
} else{
console.log('has children');
}
});
【问题讨论】:
-
.children(selector)=.children().filter(selector),不是.find(">" + selector).children()
标签: javascript html jquery