如果子div不存在,则jquery隐藏div

时间:2010-09-06 04:10:12

标签: jquery hide

我想知道如果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>

干杯

2 个答案:

答案 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();

会工作吗?