我有以下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”
感谢所有帮助者
答案 0 :(得分:4)
答案 1 :(得分:1)
这个选择器也适用于CSS3(你甚至不需要jQuery):
$('#hidethis > :not(.donthide)').hide();
演示:http://jsfiddle.net/mn7DV/5/
CSS3等价物:
#hidethis > :not(.donthide) {
display: none;
}
答案 2 :(得分:0)
你接近第一个例子:你需要指明你隐藏了父div的所有子节点,除了.donthide节点之外,像这样:
$('#parentDiv').children(':not(.dontHide)').hide();
答案 3 :(得分:0)
$(":not(.donthide)", $("#hidethis")).hide();
我喜欢使用上下文 - 但这与其他回复类似。