$ (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.