Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
HTML ist darauf ausgelegt, erweiterbar zu sein, um Daten, die mit einem bestimmten Element verknüpft sein sollen, ohne eine definierte Bedeutung zu versehen. data-* Attribute ermöglichen es uns, zusätzliche Informationen auf standardisierten, semantischen HTML-Elementen zu speichern, ohne auf andere Hacks wie nicht-standardmäßige Attribute oder zusätzliche Eigenschaften im DOM zurückzugreifen.
Die Syntax ist einfach. Jedes Attribut an einem Element, dessen Attributname mit data- beginnt, ist ein Datenattribut. Stellen Sie sich vor, Sie haben einige Artikel und möchten zusätzliche Informationen speichern, die keine visuelle Darstellung haben. Verwenden Sie einfach data-Attribute dafür:
Das Auslesen der Werte dieser Attribute in JavaScript ist ebenfalls sehr einfach. Sie könnten getAttribute() mit ihrem vollständigen HTML-Namen verwenden, um sie zu lesen, aber der Standard definiert einen einfacheren Weg: ein DOMStringMap, das Sie über eine dataset Eigenschaft auslesen können.
Um ein data-Attribut über das dataset-Objekt zu erhalten, greifen Sie auf die Eigenschaft durch den Teil des Attributnamens nach data- zu (beachten Sie, dass Bindestriche in camel case umgewandelt werden).
Jede Eigenschaft ist ein String und kann gelesen und geschrieben werden. Im obigen Fall würde das Setzen von article.dataset.columns = 5 dieses Attribut in "5" ändern.
Sie können auch document.querySelector() oder document.querySelectorAll() mit Attributselektoren verwenden, um ein Element oder alle Elemente zu finden, die übereinstimmen:
Da Datenattribute einfache HTML-Attribute sind, können Sie sogar aus CSS darauf zugreifen. Um zum Beispiel die übergeordneten Daten im Artikel anzuzeigen, können Sie generierten Inhalt in CSS mit der attr()-Funktion verwenden:
Sie können auch die Attributselektoren in CSS verwenden, um Stile gemäß den Daten zu ändern:
Datenwerte sind Strings. Zahlenwerte müssen im Selektor in Anführungszeichen gesetzt werden, damit das Styling wirksam wird.
Stellen Sie sich vor, Sie haben eine callout-Klasse. Jetzt möchten Sie verschiedene Varianten wie "note" und "warning" implementieren. Traditionell verwenden Menschen einfach unterschiedliche Klassennamen.
Mit Datenattributen gibt es eine Alternative, die Sie in Betracht ziehen können:
Es gibt mehrere Vorteile davon:
Viele Web-Apps haben JavaScript-Daten als Quelle der Wahrheit für ihren UI-Zustand. In diesen Fällen fügen Sie nur HTML-Attribute hinzu, die für das Rendering erforderlich sind. Datenattribute sind nützlich in Fällen, in denen alles im Markup vorhanden ist und JavaScript nur zum Verarbeiten von Ereignissen, Synchronisieren des Zustands usw. benötigt wird.
Beispielsweise haben wir in unserem Karussell mit Scroll-Margin ein HTML-Dokument, das bereits mit vielen <img> Elementen gefüllt ist. Die Bildquelle wird zunächst in data-src gespeichert, um zu verhindern, dass eine Anfrage gesendet wird, und der echte src wird erst hinzugefügt, wenn das <img> ins Sichtfeld scrollt. Die Daten (Bildquelle) sind mit dem Element verknüpft, und JavaScript ist nur dafür verantwortlich, das Verhalten zu definieren.
Speichern Sie keinen Inhalt, der sichtbar und zugänglich sein sollte, in Datenattributen, da unterstützende Technologien möglicherweise nicht darauf zugreifen können. Zusätzlich könnten Suchmaschinen-Crawler die Werte von Datenattributen nicht indexieren. Oft, wenn Sie nur beabsichtigen, das Datenattribut anzuzeigen, können Sie direkt textContent manipulieren.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.