2013-08-10 17 views
10

Kontext: Ich bin ein Formular und ein Skript erstellen, die eine Ajax-Abfrage, basierend auf einem Klick auf eine bestimmte Schaltfläche ausführen wird. Es gibt mehrere Div-Blöcke mit Elementen derselben Klasse, und basierend auf dem Div-Block, in dem eine Schaltfläche angeklickt wird, werden verschiedene Formulare verarbeitet.Iterate über jedes Geschwisterelement

Als Teil des Beginns des Programms habe ich mit einem scheinbar einfachen jQuery-Aufruf begonnen.

Ich versuche, ein onclick -Ereignis zu einer bestimmten Klasse hinzuzufügen und dann versuchen, den CSS-Wert der Geschwister dieses Elements zu erhalten.

Fehler: Ich erhalte eine Fehlermeldung, dass TypeError: this.siblings is undefined.

Frage: Was ist der richtige Weg, um über Geschwister eines Elements mit jQuery zu iterieren?

Mein Code:

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); 
     }); 
    }); 
}); 

Antwort

17

In einem jQuery Ereignishandler bezeichnet this auf das DOM-Element, und ist nicht ein Objekt jQuery. Sie haben es zu wickeln in einem:

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

Beachten Sie auch, dass „Geschwister“ eine Funktion ist, so dass Sie es nennen müssen, um ein neues jQuery-Objekt zu bekommen, die das Element Geschwister hüllt.