Die überprüfung der Gleichheit von 2 DOM-Elemente
Wie kann ich überprüfen, ob 2 Dom-element gleich sind.
Form Beispiel
var element1 = document.getElementById("abc");
var element2 = document.getElementById("abc");
Nun, wie soll ich chekc, dass diese 2 Elemente gleich sind?
Dank
- Fragen Sie über reference Gleichheit der Wert der Gleichheit? Es gibt zwei DOM-Elemente auf einer Seite, die das gleiche im Sinn, dass Sie dieselbe id haben, die gleichen Attribute und den gleichen Inhalt. Oder, zwei unterschiedliche Referenzen (element1 und element2) kann auf der gleichen DOM-Knoten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
UPDATE: Diese Antwort (text unten), war falsch, obwohl die akzeptierte Antwort. Statt den Vergleich der IDs eine überprüfung auf Gleichheit der Elemente:
element1 === element2
Wenn die Ids gleich sind, können Sie nicht unterschiedlich sein. Wenn die Ids Verschieden sind, Sie können nicht die gleichen sein. Also, wenn Sie beide Ids können Sie einfach vergleichen Sie die beiden Ids.id
Attribut der beiden Elemente darf nicht identisch sein. Aber die Menschen tun komische Dinge..element1
undelement2
sind Verweise auf die gleiche Stelle in der DOM-Baum. Prüfen Sie einfach,element1
,element2
sind lediglich Verweise auf diese Objekte in den Baum. Wenn die zwei Variablen verweisen auf dasselbe Objekt, dann die Referenzen gleich sind.getElementById()
etwas wiereturn new DomElement(...)
so, dass die zurückgegebenen Elemente werden immer neue Instanzen, obwohl Sie enthalten die gleichen Informationen. Aber ich glaube, Sie haben Recht, Browser, zum größten Teil scheinen die Wiederverwendung DOM-JS-Objekte.document.getElement*
definitiv nicht clone des DOM-Objekt. Sie hätte erneut einfügen, Elemente, die Sie ändern über diese Methoden, wenn Sie es Tat!Überprüfen Sie heraus die api für das dom-Knoten. Wie es scheint, könnten Sie isEqualNode um dies zu erreichen.
https://developer.mozilla.org/en-US/docs/Web/API/Node/isEqualNode
Eine Möglichkeit wäre, zu verwenden .outerHTML . Es generiert die HTML des Elements, einschließlich sich selbst (nicht nur der Inhalt gefällt .innerHTML).