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

  • Awesome Toys TV

    Awesome Toys

    18 HAZİRAN 2014
  • kimaliz

    kimaliz

    18 Temmuz 2006
  • RFS Dan

    RFS Dan

    22 Temmuz 2014