Elemente erstellen und entfernen
Mit JavaScript können wir die Webseite dynamisch verändern, indem wir neue HTML-Elemente erstellen, bestehende verändern oder entfernen. Das ermöglicht es uns, interaktive Inhalte zu erzeugen, ohne die Seite neu zu laden.
Neue Elemente erstellen
Abschnitt betitelt „Neue Elemente erstellen“Um ein neues Element zu erstellen, verwenden wir die Methode createElement():
// Neues div-Element erstellenconst neuesElement = document.createElement("div");
// Neues Textelement erstellenconst neuerText = document.createTextNode("Hallo Welt!");Elemente anpassen
Abschnitt betitelt „Elemente anpassen“Nachdem wir ein Element erstellt haben, können wir es anpassen:
// Inhalt setzenneuesElement.textContent = "Das ist ein neues Element";
// Klassen hinzufügenneuesElement.classList.add("highlight");
// Attribute setzenneuesElement.setAttribute("id", "meinElement");neuesElement.id = "meinElement"; // Alternative Schreibweise
// Styles anpassenneuesElement.style.color = "blue";neuesElement.style.fontSize = "18px";Elemente in die Seite einfügen
Abschnitt betitelt „Elemente in die Seite einfügen“Nachdem wir ein Element erstellt und angepasst haben, müssen wir es in die Seite einfügen:
// Element am Ende eines anderen Elements einfügendocument.querySelector("#container").appendChild(neuesElement);
// Element an einer bestimmten Position einfügenconst elternElement = document.querySelector("#container");const referenzElement = document.querySelector("#referenz");elternElement.insertBefore(neuesElement, referenzElement);
// Modernere MethodenelternElement.append(neuesElement); // Am Ende einfügenelternElement.prepend(neuesElement); // Am Anfang einfügenreferenzElement.before(neuesElement); // Vor einem Element einfügenreferenzElement.after(neuesElement); // Nach einem Element einfügenHTML-Strings verwenden
Abschnitt betitelt „HTML-Strings verwenden“Manchmal ist es einfacher, HTML als String zu definieren und einzufügen:
// HTML als String definierenconst htmlInhalt = ` <div class="neue-karte"> <h3>Produkttitel</h3> <p>Produktbeschreibung</p> <button>Kaufen</button> </div>`;
// HTML in die Seite einfügendocument.querySelector("#produkte").innerHTML += htmlInhalt;Hinweis: Die Verwendung von innerHTML kann bei unkontrollierten Benutzereingaben zu Sicherheitsrisiken führen. Verwenden Sie es nur für vertrauenswürdige Inhalte.
Elemente entfernen
Abschnitt betitelt „Elemente entfernen“Es gibt mehrere Möglichkeiten, Elemente zu entfernen:
// Ein Element über die Elternreferenz entfernenconst element = document.querySelector("#zuEntfernen");element.parentNode.removeChild(element);
// Direktes Entfernen (moderne Methode)element.remove();
// Den Inhalt eines Elements leerendocument.querySelector("#container").innerHTML = "";document.querySelector("#container").textContent = "";Klonen von Elementen
Abschnitt betitelt „Klonen von Elementen“Manchmal ist es nützlich, bestehende Elemente zu kopieren:
// Element klonen (ohne Kinder)const klon = element.cloneNode();
// Element mit allen untergeordneten Elementen klonenconst tieferKlon = element.cloneNode(true);
// Klon in die Seite einfügendocument.querySelector("#ziel").appendChild(tieferKlon);Praktisches Beispiel: Dynamische Liste
Abschnitt betitelt „Praktisches Beispiel: Dynamische Liste“Hier ist ein Beispiel für das Erstellen und Manipulieren einer Liste:
// Liste erstellenconst liste = document.createElement("ul");
// Listenelement hinzufügenfunction elementHinzufügen(text) { const listenelement = document.createElement("li"); listenelement.textContent = text;
// Löschen-Button hinzufügen const löschenButton = document.createElement("button"); löschenButton.textContent = "Löschen"; löschenButton.classList.add("delete-btn");
// Event-Listener für den Löschen-Button löschenButton.addEventListener("click", function() { listenelement.remove(); });
// Button zum Listenelement hinzufügen listenelement.appendChild(löschenButton);
// Listenelement zur Liste hinzufügen liste.appendChild(listenelement);}
// Einige Elemente hinzufügenelementHinzufügen("Äpfel");elementHinzufügen("Bananen");elementHinzufügen("Orangen");
// Liste in die Seite einfügendocument.querySelector("#einkaufsliste").appendChild(liste);Elemente dynamisch aktualisieren
Abschnitt betitelt „Elemente dynamisch aktualisieren“Wir können auch auf Events reagieren, um Elemente dynamisch zu aktualisieren:
// Eingabefeld und Buttonconst eingabefeld = document.querySelector("#neuerEintrag");const hinzufügenButton = document.querySelector("#hinzufügen");
// Event-Listener für das Hinzufügen neuer EinträgehinzufügenButton.addEventListener("click", function() { const text = eingabefeld.value.trim();
if (text !== "") { elementHinzufügen(text); eingabefeld.value = ""; // Eingabefeld leeren eingabefeld.focus(); // Fokus zurück auf Eingabefeld }});
// Enter-Taste abfangeneingabefeld.addEventListener("keypress", function(event) { if (event.key === "Enter") { hinzufügenButton.click(); // Button-Klick simulieren event.preventDefault(); // Formular-Submit verhindern }});Übung: To-Do-Liste erstellen
Abschnitt betitelt „Übung: To-Do-Liste erstellen“Zusammenfassung
Abschnitt betitelt „Zusammenfassung“- Mit
document.createElement()erstellen wir neue HTML-Elemente - Elemente können über ihre Eigenschaften und Methoden angepasst werden
- Neue Elemente müssen mit Methoden wie
appendChild()oderappend()in die Seite eingefügt werden - Mit
element.remove()können wir Elemente von der Seite entfernen - Die
innerHTML-Eigenschaft erlaubt das Einfügen von HTML-Strings, sollte jedoch mit Vorsicht verwendet werden - Durch die dynamische Manipulation des DOM können wir interaktive Webseiten erstellen, ohne die Seite neu zu laden
Im nächsten Kapitel lernen wir, wie wir einfache Animationen mit JavaScript erstellen können.