Jquery:如果class存在于元素hide元素中

时间:2011-11-08 13:33:09

标签: jquery hide

if( ('.container').closest('.item7') = true){

     hide THE container of item7.

     //----
     //need help with this line
     //something like $closest('.item7').('.container').hide();
     //----

}

要点:

如果容器中存在item7类,则隐藏容器。

4 个答案:

答案 0 :(得分:1)

简单:

   $('.container').each (function () {

if ($(this).has('.item7').length>0 ){

      $(this).hide();

    }

})

答案 1 :(得分:1)

如果你有更多容器,你应该循环它们:)

$('.container').each( function() {
  if( $(this).find('.item7').length ){
        $(this).hide();
  }
});

答案 2 :(得分:1)

目前还不完全清楚你要做什么,但在多次阅读你的问题之后,我的猜测是你想要这样的逻辑。如果.container对象在其中有.item7类的任何对象,则隐藏.container父对象。如果那是你真正想做的事情,你可以这样做:

$('.container .item7').closest('.container').hide();

这将找到.item7中的所有.container个对象,然后隐藏每个匹配项中最接近的.container父对象。

如果.container不包含.item7,则不会触及该.item7。如果.container中不存在$('.container .item7').parents('.container').hide(); ,则不会触及。{/ p>

如果可能有多个级别的容器并且您想要隐藏它们,您可以这样做:

.item7

找到所有.container对象,然后隐藏所有.container个父对象。

我这样做的首选方式实际上就是这样。如果只有少量.item7个对象,但有很多$('.container').has('item7').hide(); 个对象,那么效率会更高:

.container

这就是找到每个.container对象。然后在生成的jQuery对象(所有.container个对象中)中删除任何没有后代.item7的{​​{1}}对象,然后隐藏提醒.container个对象。 / p>

答案 3 :(得分:0)

$('.item7').each(function() {
    $(this).parents('.container').hide();
});

这是一个小提琴,显示它正在工作> http://jsfiddle.net/ULZGH/