2013-08-10 13 views
10

Kontekst: Buduję formularz i skrypt, który wykona zapytanie ajaxowe, na podstawie kliknięcia określonego przycisku. Istnieje wiele bloków div z elementami tej samej klasy i na podstawie bloku div, w którym kliknięty jest przycisk, przetwarzane są różne formularze.Powtórzenie każdego elementu siostrzanego

W ramach rozpoczynania programu rozpocząłem od pozornie prostego wywołania jQuery.

Próbuję dodać zdarzenie onclick do konkretnej klasy, a następnie próbuję uzyskać wartość CSS rodzeństwa tego elementu.

Błąd: Otrzymuję komunikat o błędzie z informacją, że TypeError: this.siblings is undefined.

Pytanie: Jaki jest właściwy sposób na powtarzanie nad rodzeństwem elementu przy użyciu jQuery?

Mój kod:

HTML:

<a class="btn LiveStatsBtn"><span class="btn-label">Get Stats now</span> </a> 

JavaScript:

$(document).ready (function() 
{ 
    $('.LiveStatsBtn').click(function(){ 
     this.siblings.each(function() { 
      var tx=this.css(); 
      alert(tx); 
     }); 
    }); 
}); 

Odpowiedz

17

W obsługi zdarzeń jQuery this odnosi się do elementu DOM i nie jest przedmiotem jQuery. Trzeba zawinąć go w jednym:

$(this).siblings().each(function() { 
    // ... 
}); 

pamiętać, że „rodzeństwo” jest funkcją Również tak trzeba nazwać to, aby nowy obiekt jQuery, która otacza rodzeństwo elementów.

1

siblings jest funkcją, więc potrzebuje nawiasów:

$(document).ready (function() 
{ 
    $('.LiveStatsBtn').click(function(){ 
     $(this).siblings().each(function() { 
      var tx=$(this).css(); 
      alert(tx); 
     }); 
    }); 
}); 

http://api.jquery.com/siblings/

Powiązane problemy