$ (This) dışında tümünü şu yolla gizle: jQuery seçicide değil


97

Gelişmiş başlık, basit soru:

JQuery'de aşağıdakileri nasıl yapabilirim (hariç her şeyi gizleyerek $(this))?

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

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

Yanıtlar:



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

Bir yana, $("table tr")(nokta yerine boşlukla) demek istediğini düşünüyorum .
Sahip olma şeklinize göre, tr(örneğin <table class="tr">) sınıfına sahip her tabloyu seçer , ki bu muhtemelen istediğiniz şey değildir.

Daha fazla bilgi için belgelere bakın .


Evet, nokta ile ilgili bir hataydı. Bunun daha temiz görünen Alexanders çözümünden daha kolay olduğunu bir şekilde göremiyorum. Nasıl yapacağımı sorduğumu biliyorum: hayır, ama kardeşler yöntemi daha temiz görünüyor.
Kordonme

3
Sadece eklemek için, tablo içindeki bir şeyi tıklıyorsanız, tıkladığınız öğeyi içeren satır HARİÇ tüm tablo satırlarını gizlemeye çalışmak için şunu kullanın:$('tr').not($(this).closest('tr')).hide();
Jimbo

3
Bu, yapının kardeşlerin izin verdiğinden daha karmaşık olması durumunda belirli öğeleri seçmek için kullanışlıdır. Bir örnek bulmakta zorlanıyorum, ama belki bir şeyi bir ızgaranın içine gizlemek istediğiniz, ancak ızgaranın kendisini değil.
goodeye

6

Not () 'u diğer bazı seçicilerle birleştirmek istiyorsanız, add ()' yi kullanabilirsiniz:

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

Bu, diğer tüm bağlantıları, ancak tıklananları soldurur ve ek olarak bazı seçilen kimlikleri ve sınıfları soldurur.


0

Bence çözüm şu olabilir:

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

- Yorum için DÜZENLE:

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

Yani :not(#" + .... Ayrıca, olası olmayan bir şekilde öğenin bir kimliği olmadıkça bu çalışmayacaktır.
SLaks

3
bu, tüm tablo satırlarınıza (veya ne kullanıyorsanız) rastgele ve gereksiz kimlikler eklemenizi gerektirir.
nickf

@ SLaks, Düzeltme için teşekkürler. Dow konusunda, bazen aradığımızın yardımcı olacak Hızlı Cevaplara sahip olmak olduğunu aklınızda tutabilirsiniz. Neden koyduğumuzu hafife almıyoruz?
andres descalzo

@nickf, Evet, haklısın, ama bu yorum önce @Kordonme'ye her TR için kimlik olup olmadığını sormak iyi olur.
andres descalzo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.