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

Kor*_*nme 94 jquery this jquery-selectors

高级标题,简单问题:

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

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

    $("table tr").show();
});
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 148

$("table.tr").not(this).hide();
Run Code Online (Sandbox Code Playgroud)

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

有关更多信息,请参阅文档.

  • 只是要添加,如果你点击表格中的某些内容试图让它隐藏所有表格行,排除包含你点击的项目的行,请使用:`$('tr').not($(this).最接近( 'TR'))隐藏();` (3认同)
  • 这对于选择特定元素很有用,以防结构比兄弟姐妹允许的更复杂.我很难想出一个例子,但也许你想隐藏网格中的东西,而不是网格本身. (3认同)

len*_*ooh 7

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

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

这将淡出所有其他链接,但点击的链接,并另外淡出一些选定的ID和类.