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.
🧠 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.
🛡️ 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:
- Erkläre den Unterschied zwischen den beiden Methoden – besonders im Umgang mit HTML-Code.
- Was passiert, wenn
benutzereingabeden Wert"<script>alert('Hack!')</script>"hat? - Wann ist
innerHTMLtrotzdem sinnvoll? Gib ein sicheres Anwendungsbeispiel. - 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:
- ein leeres
<ul id="liste"></ul>im HTML voraussetzt, - für jedes Element im Array ein
<li>erstellt, - die Liste im Speicher aufbaut und dann einmalig in den DOM einfügt (Performance!).
Deine Aufgabe:
- Implementiere die Funktion mit
createElementundappendChild. - Warum ist es besser, die Elemente im Speicher zu bauen, bevor sie in den DOM eingefügt werden?
- Was passiert, wenn das Element mit ID
listenicht existiert? Wie kannst du das abfangen? - 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.