DOM Element Eigenschaften auslesen/ändern

Inhalt des HTML Elements

EigenschaftBeschreibung
.textContentspeichert den Textinhalt eines Knoten (und seiner Kinder) als String
.innerHTMLspeichert den HTML Code eines Knoten als String
.valuebei input Elementen (siehe Attribute)

Hinweis: innerHTML nur zum Auslesen, nicht zum Ändern verwenden wegen Sicherheitsrisiko und Verlust von Event Listenern (nächste Stunde)

Eigenschaften eines DOM Elements

  • Alle Standardattribute (von HTML Definition vorgegeben) werden als Objekten Eigenschaften gespeichert
  • Zugriff über Punktnotation (wie in Java, nur hier alles public)
  • Beispiele:
    • alle Elemente: id, className
    • Links: href, title
    • Bilder, Multimedia: src, title
    • Input: type, name, value
  • class Attribut über
    • className = "class1 class2"
    • classList = ["class1", "class2"] (Arrays in JavaScript haben keine feste Größe und können über Methoden manipuliert werden)
  • alle Attribute als NamedNodeMap abrufen über .attributes
HTML<!DOCTYPE html>
<html lang="de">
  <head>
    <meta charset="utf-8" />
    <title>Titel der Seite</title>
  </head>
  <body>
    <div class="test">
      <p>Text im Browserfenster</p>
      <input type="text" value="hier steht schon was" />
    </div>
    <img
      src="https://uhahne.github.io/GIS/smiley.png"
      alt="lachender Smiley"
      title="ein Bild"
    />
  </body>
</html>
JavaScriptlet body = document.body;
//foreach Schleife
for (let child of body.children) {
  console.log(child);
  console.log(child.attributes);
  console.log(child.textContent);
}

Unterschied Objekt Eigenschaften und HTML Attribute

  • die DOM Objekt Eigenschaften sind die ins DOM Objekt überführten HTML Attribute
  • HTML Attribut und DOM Objekt Eigenschaft haben meistens den gleichen Wert
  • auf HTML Attribute kann explizit mit getAttribute(name) und setAttribute(name, value)
    Alternativ mit document.createAttribute(attributName) ein neues Attr Objekt anlegen und mit setAttributeNode(attrObject) in den DOM einbinden.
    zugegriffen werden