通过以下方式隐藏除$(this)之外的所有内容:不在jQuery选择器中

时间:2009-08-25 13:35:20

标签: jquery jquery-selectors this

高级标题,简单问题:

如何在jQuery中执行以下操作(隐藏除$(this)之外的所有内容?)

$("table tr").click(function() {
    $("table tr:not(" + $(this) + ")").hide();
    // $(this) is only to illustrate my problem

    $("table tr").show();
});

4 个答案:

答案 0 :(得分:186)

$(this).siblings().hide();

Traversing/Siblings

答案 1 :(得分:145)

$("table.tr").not(this).hide();

顺便说一句,我认为你的意思是$("table tr")(用空格而不是点) 你拥有它的方式,它选择每个具有tr类(例如<table class="tr">)的表,这可能不是你想要的。

有关详细信息,请参阅documentation

答案 2 :(得分:7)

如果要将not()与其他一些选择器结合使用,可以使用add():

$('a').click(function(e){
  $('a').not(this).add('#someID, .someClass, #someOtherID').animate({'opacity':0}, 800);
});

这将淡出所有其他链接,但是点击的链接,并且还会淡出一些选定的ID和类。

答案 3 :(得分:0)

我认为解决方案可以是这样的:

$("table.tr").click(function() {
    $("table.tr:not(" + $(this).attr("id") + "").hide(); // $(this) is only to illustrate my problem
    $(this).show();
})

- 编辑评论:

$("table.tr").click(function() {
    $("table.tr:not(#" + $(this).attr("id") + ")").hide(); // $(this) is only to illustrate my problem
    $(this).show();
})