SORU
8 Mayıs 2009, Cuma


(Bu) Jquery $Çocuk Seçici

Bir sayfada bu kullanıyorum:

jQuery('.class1 a').click( function() {
  if ($(".class2").is(":hidden")) {
    $(".class2").slideDown("slow");
  } else {
    $(".class2").slideUp();
  }
});

Sayfanın üstü bir yapıya sahip olduğunu şöyle:

<div class="class1">
  <a href="...">text</a>
  <div class="class2">text</div>
</div>

Bu gibi class1/Sınıf 2 ayarlar multipule olması dışında iyi çalışıyor,:

<div class="class1">
  <a href="...">text</a>
  <div class="class2">text</div>
</div>
<div class="class1">
  <a href="...">text</a>
  <div class="class2">text</div>
</div>
<div class="class1">
  <a href="...">text</a>
  <div class="class2">text</div>
</div>

Nasıl sadece tıklanma akım class1 altında Sınıf 2 etkileri ilk jquery kodunu değiştirebilirim? Bu sayfa üzerinde tavsiye edilmiştir ne varyasyonları denedim: $(this) selector and children? ama sığınak henüz işe aldık

CEVAP
8 Mayıs 2009, Cuma


Sen HTML ile muhtemelen en iyi yolu next fonksiyon gibi kullanmak olacaktır:

var div = $(this).next('.class2');

Tıklatma işleyicisi <a> oluyor bu yana da ana DİV, ikinci DİV için arama aşağı gez. parent children kombinasyonu ile bunu. Bu yaklaşım, eğer sen Ekle HTML tam olarak böyle olmasa iyi olurdu ve ikinci DİV başka bir yere bağlantı için göreceli olabilir:

var div = $(this).parent().children('.class2');

Eğer "" acil çocuklarla sınırlı değil, örneğin children yukarıda. yerine find kullanırsınız arama istersen

Ayrıca, her zaman en iyi etiket adı ile sınıf seçiciler önüne mümkün. <div> etiketler bu sınıflar için gidiyoruz eğer, sadece yani, seçici 17*, div.class2*yap.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Fullscreen

    Fullscreen

    23 Mart 2006
  • MrRandomSong

    MrRandomSong

    29 Kasım 2009
  • Tracy Hairston

    Tracy Hairst

    22 Mayıs 2009