Anzeige
Anzeige
Ratgeber
Artikel merken

HTML5: Eigene Attribute für Elemente erstellen

Manchmal ist es notwendig, einem HTML-Element zusätzliche Informationen zu übergeben, für die sich jedoch kein passendes Attribut finden lässt. Mit HTML5 gibt es die Möglichkeit, individuelle Attribute für Dateninhalte zu erstellen. Diese können dann zum Beispiel mit JavaScript ausgelesen und weiterverarbeitet werden.

Von Denis Potschien
3 Min. Lesezeit
Anzeige
Anzeige
HTML5-Logo

Gerade im Zusammenspiel mit JavaScript können zusätzliche Inhalte hilfreich sein, da man kein Attribut zweckentfremden muss und die individuellen Attribute ausschließlich so genutzt werden können, wie man es möchte.

Wie erstelle ich ein eigenes Attribut mit HTML5?

Alle benutzerdefinierten Attribute haben eines gemeinsam: Sie beginnen alle mit „data-“ – gefolgt von einer individuellen Bezeichnung. Daher werden diese Attribute auch „Data-*“ – gesprochen: Data-Dashs – genannt. Die Attributbezeichnung nach dem „data-“ muss mindestens ein Zeichen lang sein. Es dürfen Buchstaben sowie weitere Bindestriche verwendet werden.

<a href="https://t3n.de/" data-kategorie="magazin" id="verweis" />t3n.de</a>
Anzeige
Anzeige

Der Inhalt des Attributes ist eine beliebige Zeichenkette. Es können beliebige viele benutzerdefinierte Attribute einem Element hinzugefügt werden.

Was mache ich mit benutzerdefinierten Attributen?

Die zusätzlichen Informationen, die ich mittels Data-Dashs einem Element hinzufüge, müssen nun in irgendeiner Form ausgelesen und verarbeitet werden. In der Regel dürfte JavaScript dafür in Frage kommen. Im obigen Beispiel ist einem Link eine Kategorie mittels Data-Dash zugeordnet worden. Mit JavaScript lässt sich diese Kategorie nun auslesen und weiterverwenden.

Anzeige
Anzeige

Um auf Data-Dash-Attribute zuzugreifen, gibt es in der HTML5-JavaScript-API eine spezielle Eigenschaft, mit der auf Data-Dashs zugriffen werden dann, die „dataset“-Eigenschaft:

Anzeige
Anzeige
var kategorie = document.getElementById("verweis").dataset("kategorie");

Mit dieser Eigenschaft lassen sich gezielt benutzerdefinierte Attribute auslesen. Da bisher kein Browser diese Eigenschaft kennt, kann man den Data-Dash auch als gewöhnliches Attribut behandeln und mit der Eigenschaft „getAttribute“ auslesen:

var kategorie = document.getElementById("verweis").getAttribute("data-kategorie");

Diese Möglichkeit unterstützen alle halbwegs zeitgemäßen Browser und führt zum selben Ergebnis.

Anzeige
Anzeige

Anwendungsbeispiel

Als kleines Beispiel sollen Links, die derselben Kategorie angehören, hervorgehoben werden, sobald die entsprechende Kategorie angeklickt wurde. Zunächst also die Liste mit den Links und den Data-Dashs sowie die Kategorieauswahl:

<p><span onclick="linkausgabe('magazin')">Magazine</span> | <span onclick="linkausgabe('verlag')">Verlage</span></p>

<p id="linkliste">
<a href="https://t3n.de/" data-kategorie="magazin">t3n.de</a><br />
<a href="http://yeebase.com/" data-kategorie="verlag">Magazin 2</a>
</p>

Der erste Abschnitt ruft jeweils eine Funktion auf und übergibt den Kategorienamen. Der untere Abschnitt enthält die Links. Die entsprechende JavaScript-Funktion liest die Links aus und hebt Links der entsprechenden Kategorie hervor, indem sie fett dargestellt werden:

function linkausgabe(kategorie) {

  liste = document.getElementById("linkliste");

  for (i = 0; i < liste.childNodes.length; i++) {
    if (liste.childNodes[i].nodeName == "A") {
      if (liste.childNodes[i].getAttribute("data-kategorie") == kategorie) {
        liste.childNodes[i].style.fontWeight = "bold";
      } else {
        liste.childNodes[i].style.fontWeight = "normal";
      }
    }
  }

}

Weitere Anwendungsbeispiele

Im Bereich des Responsive Webdesigns werden Data-Dashs eingesetzt, um für ein Bild zwei unterschiedliche Quelldateien anzugeben. Dabei wird als normale Quelle eine niedrig aufgelöste Bilddatei angeben und über den Data-Dash zusätzlich eine hoch aufgelöste. Letztere ersetzt dann per JavaScript die niedrig aufgelöste Datei für die Ausgabe auf Geräten mit entsprechen großen Anzeigeflächen:

Anzeige
Anzeige
<img src="kleines_bild.jpg" data-fullsrc="grosses_bild.jpg" />

Auch JavaScript-Bibliotheken wie jQuery setzen zunehmend auf Data-Dashs.

Was man nicht tun sollte

Data-Dashs sollten nicht eingesetzt werden, wenn es alternative Attribute gibt. Also Titel sollten über die TITLE-Eigenschaft angeben werden anstatt über ein benutzerdefiniertes Attribut.

Auch sollten Data-Dashs nicht eingesetzt werden, um Mikroformate zu ersetzen. Data-Dashs sind ausschließlich für die interne Nutzung gedacht und nicht, um Informationen „nach außen zu tragen“. Entsprechend dürften auch Suchmaschinen Inhalte aus Data-Dash-Attributen ignorieren.

Anzeige
Anzeige

Die meisten modernen Browser unterstützen Data-Dashs zwar. Aber der aktuelle Internet Explorer ist noch außen vor. Also sollten Data-Dahs derzeit nur ergänzend eingesetzt werden.

Was haltet ihr von benutzerdefinierten Attributen? Setzt ihr sie bereits ein oder wartet ihr, bis auch der Internet Explorer Data-Dashs unterstützt?

Weiterführende Links zum Thema HTML5: HTML5-Howto: Aufklappboxen ohne JavaScript

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
12 Kommentare
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Dirk

Die data-Attribute können in Verbindung mit jQuery bereits seit längerem vollkommen bedenkenfrei eingesetzt werden, auch im Internet Explorer. Auch ohne jQuery ist die Abfrage der Attribute im Internet Explorer über getAttribute() machbar. In diesem Fall muss allerdings der vollständige Attributname „data-*“ überheben werden, was jQuery in seiner .data() Methode abstrahiert.

Antworten
Yannick

Ich benutze die auch schon seit langem und anschließend einfach $(‚.foo‘).attr(‚data-foo‘); und zack habe ich den Wert :)

Antworten
Daniel

Würde man immer warten, bis selbst der Internet Explorer alles vollständig unterstützt, lägen wir noch ein gutes Stück zurück. Finde die Möglichkeit benutzerdefinierte Attribute angeben zu können sehr gut und hilfreich.

Antworten
Elemente erstellen

Ob und wie man per CSS dran kommt wäre vielleicht auch interessant.
Der „Print“-Ansicht bei Heise wurde früher nur per CSS gemacht und konnte auch die URL unten am Ende angeben. Per css kommt wohl also wohl auch an Attribute.
Da ich kein Javascript einschalte, wenn ich nicht unbedingt muss, fällt mir sowas auf.

Evtl. lässt sich also für verschiedene Geräte oder Ziele sowas auch sinnvoll per CSS nutzen.

Antworten
LX

Worin begründet sich denn die Aussage, dass der IE kein data-* kann? Laut http://caniuse.com/#feat=dataset macht das sogar schon der 6er mit, und ich habe damit auch bislang keine Probleme festgestellt.

Antworten
Denis Potschien

@Dirk: Da die eigens für Data-Dashs vorgesehene Methode „dataset()“ noch kein Browser unterstützt, muss derzeit über jeden Browser der Data-Dash-Wert über „getAttribute()“ augelesen werden. Und das funktioniert dann auch – wie du es beschrieben hast – im Internet Explorer.

Antworten
Abbrechen

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige