Zum Inhalt springen

JavaScript und das DOM

INFO

Wir haben einen separaten, vollständigen Abschnitt zum JavaScript DOM. Dort können Sie detaillierte Beispiele und Erklärungen nachlesen.

Einführung in JavaScript und das DOM

JavaScript, eine leistungsstarke Skriptsprache, spielt eine entscheidende Rolle in der modernen Webentwicklung. Es ermöglicht dynamische Interaktionen auf Webseiten, wodurch diese nicht nur informativ, sondern auch interaktiv und ansprechend werden. Das Document Object Model (DOM), ein wesentlicher Bestandteil der Webentwicklung, repräsentiert die Struktur einer Webseite. Es handelt sich um ein baumartiges Modell, das JavaScript die Interaktion mit HTML- und XML-Dokumenten ermöglicht, um Inhalte, Struktur und Stile dynamisch zu ändern.

Das DOM verstehen

Das DOM ist eine strukturierte Darstellung Ihres HTML-Dokuments. Es ermöglicht JavaScript, auf HTML-Elemente zuzugreifen und sie zu manipulieren, was Echtzeit-Inhaltsänderungen, Stil-Anpassungen und interaktive Funktionen ermöglicht. Das DOM ist als Baum organisiert, wobei jedes HTML-Element einen Knoten darstellt. Diese hierarchische Struktur ist entscheidend für das Verständnis, wie JavaScript mit Webseiten interagiert.

Schlüsselkonzepte:

  • Knoten (Nodes): Grundbausteine des DOM, die HTML-Elemente darstellen.
  • Baumstruktur: Die hierarchische Organisation der Knoten im DOM.
  • Document-Objekt: Der Einstiegspunkt in die DOM-Hierarchie.

Durch den DOM-Baum navigieren

JavaScript bietet zahlreiche Methoden, um durch den DOM-Baum zu navigieren, und ermöglicht es Entwicklern, auf jedes Element zuzugreifen und es zu manipulieren.

dom1

html
<!DOCTYPE html>
<html>
  <head>
    <title>Text</title>
  </head>
  <body>
    <h1>Header</h1>
    <p>Paragraph</p>
  </body>
</html>

Kernmethoden:

  • document.getElementById(): Greift auf ein einzelnes Element über dessen ID zu.
  • document.getElementsByClassName(): Ruft eine HTMLCollection von Elementen mit einem bestimmten Klassennamen ab.
  • document.getElementsByTagName(): Sammelt Elemente mit einem bestimmten Tag-Namen.
  • document.querySelector(): Gibt das erste Element zurück, das einem angegebenen CSS-Selektor entspricht.
  • document.querySelectorAll(): Gibt eine Liste von Elementen zurück, die einem CSS-Selektor entsprechen.

DOM-Elemente manipulieren

Die Stärke von JavaScript liegt in der Fähigkeit, den Inhalt und das Erscheinungsbild von Webseiten dynamisch zu ändern.

Häufige Operationen:

  • Ändern von Inhalten: Verwenden Sie element.innerHTML oder element.textContent.
  • Anpassen von Stilen: Greifen Sie auf die Eigenschaft element.style zu.
  • Erstellen von Elementen: Verwenden Sie document.createElement().
  • Hinzufügen von Elementen: Verwenden Sie parentElement.appendChild(newElement).
  • Entfernen von Elementen: Verwenden Sie parentElement.removeChild(existingElement).

Hinweis: innerHTML parst HTML-Zeichenfolgen und kann bei der Verwendung mit nicht vertrauenswürdigen Eingaben XSS-Risiken bergen. Bevorzugen Sie textContent, wenn Sie reinen Text einfügen.

Ereignisbehandlung in JavaScript

Ereignisse sind Aktionen oder Vorkommnisse, die in dem System auftreten, das Sie programmieren. Das System informiert Sie darüber, sodass Sie darauf reagieren können, falls gewünscht. JavaScript kann auf Benutzeraktionen wie Klicks, Tastatureingaben und das Laden von Seiten hören und darauf reagieren.

Syntax für Event-Listener:


javascript
element.addEventListener('event', functionToCall);

Wichtige Ereignisse:

  • Klickereignisse: Werden durch Benutzerklicks ausgelöst.
  • Ladeereignisse: Werden ausgelöst, wenn Ressourcen geladen wurden.
  • Eingabeereignisse: Treten auf, wenn Benutzer mit Eingabefeldern interagieren.

Beispiel zur Ereignisbehandlung


html
<!DOCTYPE html>
<html>
<head>
    <title>Event Handling</title>
</head>
<body>
    <button id="clickMe">Click Me</button>
    <script>
        document.getElementById('clickMe').addEventListener('click', function() {
            alert('Button Clicked!');
        });
    </script>
</body>
</html>

Erweiterte DOM-Manipulationen

Über die grundlegenden Manipulationen hinaus ermöglicht JavaScript komplexere Operationen wie das Klonen von Knoten, die Bearbeitung von Formularen und die Manipulation von CSS-Klassen.

Techniken:

  • Knoten klonen: element.cloneNode(true).
  • Formularbearbeitung: Greifen Sie auf Formular-Elemente zu und manipulieren Sie diese.
  • CSS-Klassen manipulieren: Verwenden Sie element.classList.add(), element.classList.remove() oder element.classList.toggle().

JavaScript und DOM: Best Practices

Um JavaScript effizient mit dem DOM zu verwenden, beachten Sie die folgenden Best Practices:

  • DOM-Manipulationen minimieren: Reduziert das erneute Rendern und verbessert die Leistung.
  • Event Delegation verwenden: Ein einzelner Listener wird einem übergeordneten Element zugewiesen, um Ereignisse für mehrere untergeordnete Elemente effizient zu verarbeiten.
  • Reflow und Repaint verstehen: Browserprozesse zum erneuten Berechnen des Layouts und Zeichnen von Pixeln; deren Minimierung verbessert die Leistung.

JavaScript und DOM: Code-Beispiele

Inhalte ändern


html
<!DOCTYPE html>
<html>
<head>
    <title>Sample Page</title>
</head>
<body>
    <div id="content">Original Content</div>
    <script>
        document.getElementById('content').innerHTML = 'Updated Content';
    </script>
</body>
</html>

Neue Elemente hinzufügen


html
<!DOCTYPE html>
<html>
<head>
    <title>Add Elements</title>
</head>
<body>
    <div id="container"></div>
    <script>
        var newElement = document.createElement('p');
        newElement.textContent = 'New Paragraph';
        document.getElementById('container').appendChild(newElement);
    </script>
</body>
</html>

Denken Sie daran, die Beherrschung von JavaScript und dem DOM ist ein kontinuierlicher Lernprozess. Experimentieren, entwickeln und verfeinern Sie weiterhin Ihre Fähigkeiten, um ein kompetenter JavaScript-Entwickler zu werden.

Praxis

Welche Rolle spielt JavaScript im Zusammenhang mit dem Document Object Model (DOM)?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.