[jquery] $ (this)를 제외한 모든 항목 숨기기 : not in jQuery selector

고급 제목, 간단한 질문 :

jQuery에서 다음을 수행하려면 어떻게해야합니까 (를 제외한 모든 항목 숨기기 $(this))?

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

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



답변

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

순회 / 형제


답변

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

제쳐두고 $("table tr")(점 대신 공백으로) 의미한다고 생각합니다 .
당신이 그것을 가지고있는 방식으로, 그것은 아마도 당신이 원하는 것이 아닌 tr(예 🙂 클래스를 가진 모든 테이블을 <table class="tr">선택합니다.

자세한 내용은 설명서를 참조하십시오 .


답변

not ()을 다른 선택기와 결합하려면 add ()를 사용할 수 있습니다.

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

이렇게하면 다른 모든 링크가 페이드 아웃되지만 클릭 된 링크는 페이드 아웃되고 추가로 선택된 일부 ID와 클래스가 페이드 아웃됩니다.


답변

해결책은 다음과 같습니다.

$("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();
})


답변