Setup-Profi Wissensdatenbank

JavaScript & DOM Spickzettel

Dieser Spickzettel zeigt Ihnen, wie Sie JavaScript in Ihre Website integrieren und wie Sie mit dem DOM (Document Object Model) HTML-Elemente auslesen, verändern und auf Klicks reagieren.

1. JavaScript einbinden & Grundlagen

Konzept Code / Tag Erklärung
Externe Datei (Standard) <script src="script.js"></script> Bindet eine externe JS-Datei ein. Wird meistens ganz am Ende vor dem schließenden </body> platziert.
Im Head mit "defer" (Modern) <script src="script.js" defer></script> Wird in den <head> geschrieben. Das defer sorgt dafür, dass JS erst ausgeführt wird, wenn das komplette HTML geladen ist. Sehr wichtig!
Internes Script <script> let x = 5; </script> Schreibt JS-Code direkt in die HTML-Datei. Nur für sehr kurze Skripte empfohlen.
Konsolen-Ausgabe console.log("Hallo Welt"); Schreibt eine Nachricht in die Entwicklertools des Browsers (F12). Unverzichtbar für die Fehlersuche!

2. Das DOM (Document Object Model)

Die DOM-Baumstruktur visualisiert

Der Browser wandelt Ihr HTML in einen "Stammbaum" (Tree) aus Knoten (Nodes) um. Jedes Element, jeder Text und jedes Attribut ist ein Knoten.

Document (Das gesamte Dokument)
 └── html (Wurzel-Element / Root)
      ├── head (Child von html)
      │    ├── title
      │    │    └── "Mein Blog" (Text-Knoten)
      │    └── meta
      └── body (Sibling/Geschwister von head)
           ├── h1 (Child von body)
           │    └── "Willkommen!" (Text-Knoten)
           └── div (id="container")
                ├── p
                └── a (href="#")

Wichtige Verwandtschafts-Begriffe

Warum ist das wichtig? JavaScript kann nicht nur Elemente direkt suchen, sondern auch im Baum navigieren (z.B. mit element.parentElement oder element.children).

Elemente finden und ändern

Kategorie JavaScript Code Erklärung
1. Elemente finden (Select) document.getElementById("meinTitel") Findet ein einzelnes Element anhand seiner HTML-ID (id="...").
document.querySelector(".meineKlasse") Findet das erste Element, das auf einen CSS-Selektor passt (Klasse, Tag, ID).
2. Inhalt ändern element.textContent = "Neu"; Ändert den reinen Text eines Elements (sicherer gegen Hackerangriffe).
element.innerHTML = "<b>Fett</b>"; Ersetzt den kompletten HTML-Inhalt innerhalb des Elements.
3. CSS & Klassen ändern element.classList.add("aktiv"); Fügt dem Element eine CSS-Klasse (z.B. für Styling) hinzu.
element.classList.remove("aktiv"); Entfernt eine CSS-Klasse.
element.classList.toggle("aktiv"); Schaltet die Klasse um: Ist sie da, wird sie entfernt. Fehlt sie, wird sie hinzugefügt (Perfekt für Menüs!).
4. Interaktion (Events) element.addEventListener("click", funktion); Wartet darauf, dass das Element angeklickt wird, und führt dann eine Funktion aus.

3. Praktische Code-Beispiele

Beispiel 1: Die perfekte Einbindung (in der index.html)

Binden Sie Ihre JS-Datei im Head mit dem Attribut defer ein. So blockiert das Skript nicht den Aufbau der Seite, greift aber sicher auf alle HTML-Elemente zu.

<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <title>Meine Seite</title>
    <link rel="stylesheet" href="style.css">
    
    <!-- HIER WIRD JAVASCRIPT EINGEBUNDEN -->
    <script src="script.js" defer></script>
</head>
<body>
    <h1 id="ueberschrift">Hallo Welt</h1>
</body>
</html>

Beispiel 2: Text per JavaScript ändern (in der script.js)

Wir suchen ein Element und ändern sofort seinen Text.

// 1. Element im DOM suchen und in einer Variablen speichern
let meinTitel = document.getElementById("ueberschrift");

// 2. Den Inhalt des Elements verändern
meinTitel.textContent = "Hallo JavaScript!";

// 3. Zur Kontrolle etwas in die Entwickler-Konsole schreiben
console.log("Die Überschrift wurde erfolgreich geändert!");

Beispiel 3: Auf einen Button-Klick reagieren (Event Listener)

<!-- HTML-Teil -->
<button id="meinButton">Klick mich</button>
<div id="nachricht"></div>
// JavaScript-Teil
// 1. Elemente auswählen
let btn = document.getElementById("meinButton");
let ausgabe = document.getElementById("nachricht");

// 2. Den "Lauscher" (Event Listener) an den Button hängen
btn.addEventListener("click", function() {
    
    // Dieser Code wird NUR ausgeführt, wenn geklickt wird
    ausgabe.innerHTML = "<strong>Danke für den Klick!</strong>";
    
    // Optional: Fügt dem Ausgabefeld eine Bootstrap CSS-Klasse hinzu
    ausgabe.classList.add("text-success"); 
    
});