09 – DOM-Manipulation 🌐

Brücke zwischen HTML & JavaScript – Inhalte dynamisch steuern

🎯 1. Einleitung & W3Schools

In diesem Kapitel hast du gelernt, wie du mit JavaScript den DOM durchsuchst, änderst, erweiterst und sicher manipulierst.

🔗 W3Schools – JavaScript HTML DOM

🧠 2. KI-Prompt-Training

Aufgabe: Formuliere einen Prompt, mit dem du KI um Hilfe bitten würdest, um zu erklären, wann man .textContent und wann .innerHTML verwendet – und wie man sicher neue Elemente im DOM erstellt.

💡 Tipp: Fordere eine sichere Listen-Erstellung mit Fehlerprüfung an.

🛡️ Aufgabe 1: innerHTML vs. textContent – Wann was?

Gegeben ist folgende Aufgabe: Zeige eine Benutzereingabe auf der Webseite an.

// Unsichere Variante
document.getElementById("ausgabe").innerHTML = benutzereingabe;

// Sichere Variante
document.getElementById("ausgabe").textContent = benutzereingabe;

Deine Aufgabe:

  1. Erkläre den Unterschied zwischen den beiden Methoden – besonders im Umgang mit HTML-Code.
  2. Was passiert, wenn benutzereingabe den Wert "<script>alert('Hack!')</script>" hat?
  3. Wann ist innerHTML trotzdem sinnvoll? Gib ein sicheres Anwendungsbeispiel.
  4. Formuliere einen Prompt, der eine Funktion erstellt, die sicher Benutzereingaben anzeigt – es sei denn, der Inhalt ist vertrauenswürdig (z. B. aus deinem eigenen Code).

➕ Aufgabe 2: Dynamische Liste – Elemente erstellen und einfügen

Erstelle eine Funktion zeigeListe(elemente), die:

Deine Aufgabe:

  1. Implementiere die Funktion mit createElement und appendChild.
  2. Warum ist es besser, die Elemente im Speicher zu bauen, bevor sie in den DOM eingefügt werden?
  3. Was passiert, wenn das Element mit ID liste nicht existiert? Wie kannst du das abfangen?
  4. Formuliere einen Prompt, der diese Funktion robust und performant implementiert – mit Fehlerprüfung und effizientem DOM-Zugriff.

📊 Beurteilungskriterien – Übung 09: DOM-Manipulation

Deine Lösung wird anhand folgender Kriterien beurteilt – besonders im Fachgespräch. Markiere selbst ehrlich, wo du stehst:

Kriterium
Erfüllt

Teilweise

Nicht erfüllt
Verständnis von innerHTML vs. textContent:
Kannst du im Fachgespräch erklären, warum textContent sicherer ist und warum innerHTML nur bei vertrauenswürdigem Inhalt verwendet werden darf?
Umgang mit DOM-Erstellung:
Erstellst du neue Elemente mit createElement und appendChild und vermeidest du ineffizientes wiederholtes innerHTML?
Qualität der Prompts:
Sind deine Prompts präzise formuliert, thematisch korrekt und vermeiden sie, KI um „fertigen Code“ zu bitten?
Eigene Reflexion:
Kannst du im Fachgespräch erklären, warum du deine Lösung gewählt hast – oder gibst du nur KI-Output ab?

⚠️ Hinweis: Im Fachgespräch wirst du gebeten, deine Lösung in eigenen Worten zu erklären. Wer nur KI-Code abgibt, kann die Fragen nicht beantworten.

🎓 Jetzt kannst du Webseiten dynamisch steuern!

→ Zu Übung 10: Ereignisse & Timing