我想知道如果div里面没有div,我怎么能隐藏div。每个div都包含一个h2标签,但如果div不包含名为“info”的div,我希望它被隐藏。这是结构:
<div class="qaContainer"> (this div can stay as is, as it contains an "info" div)
<h2>Testing Category 03</h2>
<div class="info">if this div exists then this parent div can stay as is</div>
</div>
<div class="qaContainer"> (i need this div to be hidden as it doesn't contain a "info" div)
<h2>Testing Category 04</h2>
</div>
干杯
答案 0 :(得分:3)
一个明显的解决方案可能是
$('.qaContainer').each(function() {
$(this)[0 == $(this).find('.info').size() ? 'hide' : 'show']();
});
** 编辑 **
解决方案很明显,因为它没有使用花哨的选择器或条件;它只是找到所有需要的元素(这里是任何带有'qaContainer'类的元素)并循环遍历它们。在循环的回调函数中,隐藏或显示当前正在迭代的元素,具体取决于是否存在具有CSS类“info”的子元素。此解决方案将隐藏或显示元素,因此它是通用的和可重用的;只要DOM更改并且您想要更新'qaContainer'元素,就执行这三行。
答案 1 :(得分:2)
我猜是像
$('.qaContainer').not($('.info').parent()).hide();
会工作吗?