Heim > Web-Frontend > js-Tutorial > Kann ich über die ID als globale Eigenschaften auf DOM-Elemente zugreifen, und sollte ich das tun?

Kann ich über die ID als globale Eigenschaften auf DOM-Elemente zugreifen, und sollte ich das tun?

Susan Sarandon
Freigeben: 2024-12-21 13:25:13
Original
453 Leute haben es durchsucht

Can I Access DOM Elements by ID as Global Properties, and Should I?

ID-zugewiesene DOM-Elemente und globale Eigenschaften

In einer früheren Frage wurde beobachtet, dass bestimmte DOM-Elemente mit IDs als Variable zugänglich sind Namen oder Eigenschaften des Fensterobjekts in Internet Explorer und Chrome. Zum Beispiel für das HTML-Element:

<div>
Nach dem Login kopieren

Die innerHTML-Eigenschaft kann wie folgt abgerufen werden:

alert(example.innerHTML); // Alerts "some text".
alert(window["example"].innerHTML); // Alerts "some text".
Nach dem Login kopieren

Dies wirft die Fragen auf:

  • Sind alle DOM-Elemente mit IDs in globale Objekteigenschaften umgewandelt?
  • Kann dieser Mechanismus als Alternative zu getElementById verwendet werden? Methode?

Eigenschaften und globale Zugänglichkeit

Das beabsichtigte Verhalten besteht darin, dass benannte Elemente zu offensichtlichen Eigenschaften des Dokumentobjekts werden. Dieser Ansatz ist jedoch problematisch, da es zu Konflikten zwischen Elementnamen und tatsächlichen Dokumenteigenschaften kommt.

Microsoft Internet Explorer verschärfte das Problem, indem benannte Elemente als Eigenschaften des Fensterobjekts zugewiesen wurden. Dies verkompliziert die Sache noch weiter, da Elementnamen vermieden werden müssen, die mit einem Mitglied des Dokuments oder Fensterobjekts übereinstimmen.

Probleme mit der globalen Zugänglichkeit

Außerdem werden benannte Elemente als sichtbar globalähnliche Variablen. Während globale Variablen- und Funktionsdeklarationen sie normalerweise überschatten, kann die Zuweisung eines Werts zu einer globalen Variablen mit einem passenden Namen zu Fehlern im Internet Explorer führen.

Best Practices

It Generell wird davon abgeraten, sich beim Erstellen globaler Variablen auf benannte Elemente als globale Eigenschaften zu verlassen oder die var-Deklaration wegzulassen. Aufgrund der breiteren Unterstützung und der geringeren Mehrdeutigkeit wird die Einhaltung von document.getElementById empfohlen. Erwägen Sie die Verwendung einer einfachen Wrapper-Funktion mit einem kürzeren Namen, wenn die Eingabe zum Problem wird.

Caching und Browser-Optimierung

Die Pflege eines ID-zu-Element-Suchcaches ist im Allgemeinen nicht erforderlich da Browser den getElementById-Aufruf oft durch eine schnelle Suche optimieren. Potenzielle Probleme entstehen, wenn Elemente IDs ändern oder dem Dokument hinzugefügt/entfernt werden.

Standardisierung und zukünftige Auswirkungen

Die HTML5-Spezifikation kodifiziert nun die bisher nicht standardmäßige Praxis von Hinzufügen benannter Elemente zu Dokument- und Fenstereigenschaften. Dies bedeutet, dass Firefox 4 diese Funktionalität auch unterstützen wird.

Fazit

Während es in bestimmten Browsern möglich ist, auf DOM-Elemente mit IDs als globale Eigenschaften zuzugreifen, ist dies in dieser Praxis der Fall aufgrund möglicher Konflikte und Unklarheiten entmutigt. Es ist besser, sich auf document.getElementById oder eine einfache Wrapper-Funktion zu verlassen.

Das obige ist der detaillierte Inhalt vonKann ich über die ID als globale Eigenschaften auf DOM-Elemente zugreifen, und sollte ich das tun?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage