Ich würde vermuten, dass dies zunächst funktioniert:
if ($('#element') == $('#element')) alert('hello');
Aber das tut es nicht. Wie testet man, ob Elemente gleich sind?
javascript
jquery
Jona
quelle
quelle
Das sollte funktionieren:
so sollte das sein
quelle
$.is
Oder nur
(ohne neue jQuery-Instanz ;-)
quelle
Wie bereits jemand sagte, generiert dasselbe HTML-Element, das in zwei verschiedenen Momenten eingeschlossen ist, zwei verschiedene jQuery-Instanzen, sodass sie niemals gleich sein können.
Stattdessen können die umschlossenen HTML-Elemente auf diese Weise verglichen werden, da der von ihnen belegte Speicherplatz derselbe ist, wenn es sich um dasselbe HTML-Element handelt.
Freundliche Grüße!
quelle
Ich würde addClass () zum Markieren des geöffneten verwenden und Sie können das leicht überprüfen.
quelle
9 Jahre später ohne jQuery
Wenn zwei Elemente dasselbe sind, müssen zwei Elemente denselben Zeiger haben. So,
quelle
Wie seidig oder Santi sagte, wäre eine eindeutige ID oder Klasse der einfachste Weg, um zu testen. Der Grund dafür, dass Ihre if-Anweisungen nicht wie erwartet funktionieren, liegt darin, dass zwei Objekte verglichen werden und festgestellt wird, ob sie dasselbe Objekt im Speicher sind.
Da es sich immer um ein neues Objekt handelt, das von $ (this) erstellt wird, können sie sich niemals gleichen. Deshalb müssen Sie eine Eigenschaft des Objekts testen. Sie könnten ohne eindeutige ID / Klasse davonkommen, wenn für jedes openActivity-Element garantiert ein anderer Inhalt vorhanden wäre, gegen den Sie testen könnten.
quelle