2010-04-21 8 views
49

Wie überprüfe ich, ob ein Element das letzte Geschwister ist?jQuery: Wie überprüfe ich, ob ein Element das letzte Geschwister ist?

Für die letzte Zelle in einer Zeile möchte ich eine andere Aktion ausführen.

funktioniert das nicht:

$('td').each(function(){ 
    var $this = $(this); 
    if ($this === $this.parent().last('td')) 
     { 
      alert('123'); 
     } 
}) 

Und keiner tut es, wenn ich .parent() entfernen.

+5

Der Grund, warum dies nicht funktioniert, ist, weil Sie zwei jQuery-Objekte miteinander vergleichen. Objekte sind immer nur dann gleich, wenn sie genau dasselbe Objekt sind. '$ (this) == $ (this)' ist falsch .. Verrücktes Zeug. Ihr Beispiel würde funktionieren, wenn Sie 'if ($ this.get (0) === $ this.parent(). Last ('td'). Get (0))', wie es die tatsächlichen DOM-Elemente vergleicht. (http://api.jquery.com/get) – Matt

Antwort

12

Versuchen

$('tr td:last-child').each(function(){ 
    var $this = $(this); 
    alert('123'); 
}); 
7

Hier gehen Sie, aber das nur dann Sinn machen, wenn Sie etwas zu den anderen tds auch andere weise nutzen die last-child Methode in einem der anderen Antworten beschrieben tun wollen .

$('td').each(function(){ 
    var $this = $(this); 
    if ($this.index() == $this.siblings().length-1) 
     { 
      alert('123'); 
     } 
}) 
277

Das ist eleganter und arbeitete für mich:

if($(this).is(':last-child')) 
{ 
    alert('123'); 
} 
+30

Schön, sollte dies als die richtige Antwort für diese Frage markiert werden .. –

+2

Dies ist die, die ich verwendet habe. Danke vielmals. – James

+3

Ich wünsche Stack lassen Sie uns Stimmen auf eine andere Antwort als die akzeptierte markieren! – Alexandru

2

Sie auf diese Weise codieren können.

var $this = $(this); 
if($this.index()==$this.siblings().size()-1) 
{ 
    alert("It's the last."); 
} 
Verwandte Themen