15. Unterrichtsblock

Kursinhalte
JavaScript DOM
HTML-Elemente finden
Methode | Beschreibung |
---|---|
document.getElementById(id) | Finde ein Element durch das ID-Attribut |
document.getElementsByTagName(name) | Finde ein Element durch den Tag-Namen |
document.getElementsByClassName(name) | Finde ein Element durch den Klassen-Namen |
Ändern von HTML-Elementen
Eigenschaft | Beschreibung |
---|---|
element.innerHTML = new html content | Ändere das innere HTML eines Elements |
element.attribute = new value | Füge einen neuen Attribut-Wert zu einem Elements hinzu |
element.style.property = new style | Ändere den Stil eines HTML-Elements |
Methode | Beschreibung |
element.setAttribute(attribute, value) | Ändere den Attribut-Wert eines HTML-Elements |
Elemente hinzufügen und löschen
Methode | Beschreibung |
---|---|
document.createElement(element) | Erstelle ein HTML Element |
document.removeChild(element) | Lösche ein HTML-Element |
document.appendChild(element) | Füge ein HTML-Element hinzu |
document.replaceChild(new, old) | Ersetze ein HTML-Element |
document.write(text) | Schreibe in ein HTML-Element |
Hinzufügen von Ereignishandlern
Methode | Beschreibung |
---|---|
document.getElementById(id).onclick = function(){code} | Adding event handler code to an onclick event |
Aufgabe
Aufgabe 1: Text eines Elements ändern
Ziel: Schreibe ein JavaScript-Skript, das den Textinhalt eines HTML-Elements mit einer bestimmten ID ändert.
Anforderungen:
- Wähle ein Element mit der ID
meinElement
aus. - Ändere den Textinhalt des Elements zu „Hallo Welt!“.
- Verwende
document.getElementById
und dietextContent
-Eigenschaft.
Aufgabe 2: Elementfarbe ändern
Ziel: Implementiere ein JavaScript-Skript, das die Farbe des Textes eines Elements mit der ID farbText
in Rot ändert.
Anforderungen:
- Wähle das Element mit der ID
farbText
aus. - Setze die Textfarbe des Elements auf Rot.
- Verwende
document.getElementById
und ändere diestyle.color
-Eigenschaft.
Aufgabe 3: Ein neues Element erstellen und hinzufügen
Ziel: Erstelle ein neues <p>
-Element und füge es am Ende des Body-Elements der Seite hinzu. Der Text des Paragraphen soll „Ein neuer Paragraph“ sein.
Anforderungen:
- Erstelle ein neues
<p>
-Element. - Setze den Textinhalt des neuen Elements auf „Ein neuer Paragraph“.
- Füge das neue Element am Ende des
<body>
-Tags hinzu. - Verwende
document.createElement
,textContent
unddocument.body.appendChild
.
Aufgabe 4: Ein Event Listener hinzufügen
Ziel: Füge einem Button mit der ID meinButton
einen Event Listener hinzu, der bei einem Klick eine Alert-Box mit der Nachricht „Button wurde geklickt!“ anzeigt.
Anforderungen:
- Wähle den Button mit der ID
meinButton
aus. - Füge einen Event Listener für das
click
-Ereignis hinzu. - Zeige eine Alert-Box mit der Nachricht „Button wurde geklickt!“ an, wenn der Button geklickt wird.
- Verwende
document.getElementById
undaddEventListener
.
Aufgabe 5: Elemente nach Klasse auswählen und deren Hintergrundfarbe ändern
Ziel: Schreibe ein JavaScript-Skript, das alle Elemente mit der Klasse hintergrundFarbe
auswählt und deren Hintergrundfarbe in Gelb ändert.
Anforderungen:
- Wähle alle Elemente mit der Klasse
hintergrundFarbe
aus. - Ändere die Hintergrundfarbe jedes ausgewählten Elements in Gelb.
- Verwende
document.getElementsByClassName
und iteriere durch die NodeList, um diestyle.backgroundColor
-Eigenschaft jedes Elements zu ändern.
JavaScript JSON
JSON ist ein Format zum Speichern und Transportieren von Daten. JSON wird häufig verwendet, wenn Daten von einem Server an eine Webseite gesendet werden.
Die Dateiendung lautet: .json
Was ist JSON?
- JSON steht für Java Script Object Notation
- JSON ist ein einfaches Datenaustauschformat
- JSON ist sprachunabhängig *
- JSON ist „selbstbeschreibend“ und leicht verständlich
Hinweis: Die JSON-Syntax wird von der JavaScript-Objektnotationssyntax abgeleitet, aber das JSON-Format ist nur Text. Code zum Lesen und Generieren von JSON-Daten kann in jeder Programmiersprache geschrieben werden.
JSON-Beispiel
Diese JSON-Syntax definiert ein Objekt mit Mitarbeitern: ein Array von 3 Mitarbeiterdatensätzen (Objekten):
JSON-Beispiel
{
"mitarbeiter":[
{"vorName":"Johann", "nachName":"Meier"},
{"vorName":"Anna", "nachName":"Schmidt"},
{"vorName":"Peter", "nachName":"Huber"}
]
}
Das JSON-Format wird wie JavaScript-Objekte gewertet
Das JSON-Format ist syntaktisch identisch mit dem Code zum Erstellen von JavaScript-Objekten. Aufgrund dieser Ähnlichkeit kann ein JavaScript-Programm JSON-Daten problemlos in native JavaScript-Objekte konvertieren.
JSON-Syntaxregeln
- Daten befinden sich in Name/Wert-Paaren
- Daten werden durch Kommas getrennt
- Geschweifte Klammern halten Objekte
- Eckige Klammern halten Arrays
JSON-Datensätze
JSON-Daten werden als Name/Wert-Paare geschrieben, genau wie JavaScript-Objekt-Eigenschaften.
Ein Name/Wert-Paar besteht aus einem Feldnamen (in doppelten Anführungszeichen), gefolgt von einem Doppelpunkt, gefolgt von einem Wert:
"vorName":"Johann"
JSON-Namen erfordern doppelte Anführungszeichen. JavaScript-Namen nicht.
JSON-Objekte
JSON-Objekte werden in geschweiften Klammern geschrieben. Genau wie in JavaScript können Objekte mehrere Name/Wert-Paare enthalten:
{"vorName":"Johann", "nachName":"Meier"}
JSON-Arrays
JSON-Arrays werden in eckige Klammern geschrieben. Genau wie in JavaScript kann ein Array Objekte enthalten:
{
"mitarbeiter":[
{"vorName":"Johann", "nachName":"Meier"},
{"vorName":"Anna", "nachName":"Schmidt"},
{"vorName":"Peter", "nachName":"Huber"}
]
}
Im obigen Beispiel ist das Objekt „Mitarbeiter“ ein Array. Es enthält drei Objekte. Jedes Objekt ist eine Aufzeichnung einer Person (mit einem Vornamen und einem Nachnamen).
Konvertieren eines JSON-Texts in ein JavaScript-Objekt
Eine häufige Verwendung von JSON besteht darin, Daten von einem Webserver zu lesen und die Daten auf einer Webseite anzuzeigen. Der Einfachheit halber kann dies anhand eines Strings als Eingabe demonstriert werden.
Man erstellt zunächst einen JavaScript-String mit JSON-Syntax:
let text = '{
"mitarbeiter":[
{"vorName":"Johann", "nachName":"Meier"},
{"vorName":"Anna", "nachName":"Schmidt"},
{"vorName":"Peter", "nachName":"Huber"}
]
}';
Anschließend verwendet man die integrierte JavaScript-Funktion JSON.parse()
, um die Zeichenfolge in ein JavaScript-Objekt zu konvertieren:
const obj = JSON.parse(text);
Nun verwendet man das neue JavaScript-Objekt auf der Seite:
<p id="demo1"></p>
<script>
document.getElementById("demo1").innerHTML =
obj.mitarbeiter[1].vorName + " " + obj.mitarbeiter[1].nachName;
</script>
JSON-Dateien von einem Server holen und verarbeiten
Meistens wird JSON verwendet, um Datensätze zwischen Webseiten zu übertragen. Hierbei kommt die AJAX-Abfrage-Methode „XMLHttpRequest()
“ zum Einsatz.
<!DOCTYPE html>
<html>
<body>
<h3>Eine JSON-Datei mit dem Objekt "XMLHttpRequest" holen</h3>
<p id="demo"></p>
<script>
const abfrage = new XMLHttpRequest();
abfrage.onload = function() {
const meinObjekt = JSON.parse(this.responseText);
document.getElementById("demo").innerHTML = meinObjekt.name;
}
abfrage.open("GET", "https://webentwicklerkurs.de/wp-content/uploads/2023/01/json_beispiel.json");
abfrage.send();
</script>
</body>
</html>
Eine JSON-Datei mit dem Objekt „XMLHttpRequest“ holen
Aufgabe
Vorbereitung: Schreibe eine JSON-Datei, welche die Werte der Frühstücksbuffets aus dem XML-Beispiel Nr. 2 aus folgendem Unterrichtsblock enthält: https://webentwicklerkurs.de/1-jahr/html/7-unterrichtsblock/#xml
Aufgabe 1: JSON-String in ein JavaScript-Objekt umwandeln
Ziel: Schreibe ein JavaScript-Skript, das einen JSON-String in ein JavaScript-Objekt umwandelt und dann eine Eigenschaft dieses Objekts im Konsolen-Log ausgibt.
Anforderungen:
- Verwende den JSON-String mit den Inhalten des „Frühstücksbuffets“ der Aufgabenvorbereitung.
- Verwende
JSON.parse
zur Umwandlung des JSON-Strings in ein JavaScript-Objekt. - Gib den Namen des 2. Essens im Konsolen-Log aus.
Aufgabe 2: Ein JavaScript-Objekt in einen JSON-String umwandeln
Ziel: Erstelle ein JavaScript-Objekt und wandle es in einen JSON-String um. Gib diesen String anschließend im Konsolen-Log aus.
Anforderungen:
- Erstelle ein JavaScript-Objekt aus folgender Tabelle: https://webentwicklerkurs.de/1-jahr/html/7-unterrichtsblock/#aufgabe
- Verwende
JSON.stringify
, um das JavaScript-Objekt in einen JSON-String zu konvertieren. - Gib den resultierenden JSON-String im Konsolen-Log aus.
JavaScript AJAX
Mit AJAX kann man:
- Daten von einem Webserver lesen – nachdem die Seite geladen wurde
- Eine Webseite aktualisieren, ohne die Seite neu zu laden
- Daten an einen Webserver senden – im Hintergrund
AJAX-Beispiel
Ändern von Inhalten auf HTML-Seite
<!DOCTYPE html>
<html>
<body>
<div id="demo1">
<h2>Diesen Text mit AJAX ändern</h2>
<button type="button" onclick="ladeDokument()">Ändere Inhalt</button>
</div>
<script>
function ladeDokument() {
const abfrage = new XMLHttpRequest();
abfrage.onload = function() {
document.getElementById("demo1").innerHTML =
this.responseText;
}
abfrage.open("GET", "ajax_beispiel.txt");
abfrage.send();
}
</script>
</body>
</html>
<!-- die Datei "ajax_beispiel.txt enthält"-->
<h1>AJAX</h1>
<p>AJAX ist keine Programmiersprache.</p>
<p>AJAX ist eine Technik um auf Webserver über eine Webseite zuzugreifen.</p>
<p>AJAX steht für Asynchrones JavaScript und XML.</p>
Die HTML-Seite enthält einen <div>-Abschnitt und einen <button>.
Der Abschnitt <div> wird verwendet, um Informationen von einem Server anzuzeigen.
Der <button> ruft eine Funktion auf (wenn er angeklickt wird).
Die Funktion fordert Daten von einem Webserver an und zeigt sie an.
Was macht AJAX?
AJAX verwendet nur eine Kombination aus:
- Ein im Browser integriertes
XMLHttpRequest
-Objekt (um Daten von einem Webserver anzufordern) - JavaScript und HTML DOM (um die Daten anzuzeigen oder zu verwenden)
AJAX ist ein irreführender Name. AJAX-Anwendungen verwenden möglicherweise XML zum Transportieren von Daten, aber es ist ebenso üblich, Daten als Text oder JSON-Datei zu transportieren.
AJAX ermöglicht die asynchrone Aktualisierung von Webseiten, indem hinter den Kulissen Daten mit einem Webserver ausgetauscht werden. Das bedeutet, dass es möglich ist, Teile einer Webseite zu aktualisieren, ohne die ganze Seite neu zu laden.
Wie AJAX funktioniert

- 1. Ein Ereignis tritt auf einer Webseite auf (die Seite wird geladen, eine Schaltfläche wird angeklickt)
- 2. Ein XMLHttpRequest-Objekt wird von JavaScript erstellt
- 3. Das XMLHttpRequest-Objekt sendet eine Anfrage an einen Webserver
- 4. Der Server verarbeitet die Anfrage
- 5. Der Server sendet eine Antwort zurück an die Webseite
- 6. Die Antwort wird von JavaScript gelesen
- 7. Die richtige Aktion (wie Seitenaktualisierung) wird von JavaScript durchgeführt
Für moderne Browser (Fetch-API)
Moderne Browser können die Fetch-API anstelle des XMLHttpRequest
-Objekts verwenden. Die Fetch-API-Schnittstelle ermöglicht es dem Webbrowser, HTTP-Anforderungen an Webserver zu stellen.
Wenn man das XMLHttpRequest
-Objekt verwendet, kann Fetch (zu deutsch abrufen / holen / ziehen) dasselbe auf einfachere Weise tun.
Ein Fetch-API-Beispiel
Da Fetch auf async
und await
basiert, enthält das folgende Beispiel zwei zusätzliche Keywords:
<!DOCTYPE html>
<html>
<body>
<p id="demo3">Rufe eine Datei ab, um diese Text zu ändern</p>
<script>
getText("fetch_beispiel.txt");
async function getText(file) {
let meinObjekt = await fetch(file);
let meinText = await meinObjekt.text();
document.getElementById("demo3").innerHTML = meinText;
}
</script>
</body>
</html>
<!-- Inhalt der Datei "fetch_beispiel.txt" -->
<h1>Fetch API</h1>
<p>Das Fetch API interface erlaubt es Browsern HTTP-Abfragen von Websevern zu machen.</p>
<p>Anstatt das XMLHttpRequest-Object zu verwenden, kann man dies mit der Fetch-API auch einfacher tun.</p>
Aufgabe
Probiere o.g. Skripte aus und verwende hierbei die Referenz, die hier https://www.mediaevent.de/javascript/json-fetch.html zur Verfügung gestellt werden, um ein Gefühl für fetch()
zu bekommen. Lade mehrere Inhalte der Seite https://dummyjson.com/ in das Dokument.