Auge: Javascript - Klasse ändern

Beitrag lesen

Hallo

Auf eurer Seite https://wiki.selfhtml.org/wiki/JavaScript/DOM/Document/getElementById habt ihr ein Beispiel vorgestellt, bei dem es an einer Stelle heißt:

<button data-attribut="hinweis">Hinweis</button>

Und an einer weiteren Stelle:

function ändereKlasse(event) {[...]
    name = button.getAttribute('data-attribut'),[...]
  }

Kann man den Ausdruck "data-attribut" durch andere Ausdrücke ersetzen?

Ja.

Durch welche?

Solche, die mit data- beginnen oder durch ein „offizielles“ HTML-Attribut.

Ganz frei gewählt?

Nein nicht „ganz frei“, sondern innerhalb der oben skizzierten Grenzen.

Oder ist "data-attribut" ein festgelegter Ausdruck, den man gar nicht ersetzen kann?

Früher gab es nur die Attribute, die die Sprache HTML von sich aus bereitstellte. Mittlerweile wurde die Möglichkeit geschaffen, in HTML eigene Attribute einzufügen. Voraussetzung ist, dass ihre Namen mit data- beginnen.

Da getAttribute schlicht ein beliebiges Attribut anspricht, dessen Name innerhalb des Klammerpaares angegeben wird, kannst du irgendein, ein den Regeln von HTML entsprechendes, Attribut benennen, auf das zu zugreifen willst.

(Um genau zu sein: Ich habe versucht, den Ausdruck zu ersetzen, und das hat in dem entsprechenden Beispiel funktioniert. Aber ich bin mir nicht sicher, ob das nur zufällig funktioniert hat und in Wirklichkeit schlechter Code ist, der in anderen Zusammenhängen nicht funktionieren würde.)

Wie gesagt, solange das Attribut den zugrundeliegenden regeln entspricht, kannst du es auch in getAttribute verwenden.

Falls man "data-attribut" nicht ersetzen kann: Wie kann man vorgehen, wenn man in einer Datei zwei voneinander völlig unabhängige Klassenänderungen durchführen will?

Um speziell Klassen einzufügen oder zu entfernen, kannst du classList verwenden. Das ist noch etwas einfacher zu benutzen.

Tschö, Auge

--
200 ist das neue 35.