隐藏一个类,除了里面的特定类

时间:2011-12-02 18:11:11

标签: jquery

我有以下div:

<div id="hidethis">
    <!-- here i have some more divs, each with a classqid name -->
    <div class="donthide">
    </div>     
</div>

我希望隐藏除了div #hidethis"之外的所有内容".donthide"内的所有内容。 我读了一些相关的帖子,我试过了:

 $(document).ready(function() {
    $("#hidethis").not(".donthide").hide();
 });

或者这个:

 $(document).ready(function() {
   $("#hidethis").filter(".donthide").hide();
 });

但似乎没有任何效果,它隐藏了一切,包括“.donthide”

感谢所有帮助者

4 个答案:

答案 0 :(得分:4)

怎么样:

$("#hidethis").children(":not(.donthide)").hide();

示例: http://jsfiddle.net/FveKc/

答案 1 :(得分:1)

这个选择器也适用于CSS3(你甚至不需要jQuery):

$('#hidethis > :not(.donthide)').hide();

演示:http://jsfiddle.net/mn7DV/5/

CSS3等价物:

#hidethis > :not(.donthide) { 
  display: none;
}

演示:http://jsfiddle.net/V7xew/1/

答案 2 :(得分:0)

你接近第一个例子:你需要指明你隐藏了父div的所有子节点,除了.donthide节点之外,像这样:

$('#parentDiv').children(':not(.dontHide)').hide();

See fiddle here

答案 3 :(得分:0)

$(":not(.donthide)", $("#hidethis")).hide();

我喜欢使用上下文 - 但这与其他回复类似。