javascripting:lektion_04
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
javascripting:lektion_04 [10.06.2015 09:00] – pasler | javascripting:lektion_04 [15.06.2015 12:59] (aktuell) – pasler | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Lektion 4: HTML-Manipulation II - jQuery ====== | ||
+ | Informatiker sind von Haus aus faul! Es wird versucht, einfache Lösungen für Probleme zu finden, Code-Zeilen zu sparen und Redundanzen (Wiederholungen) zu vermeiden. Auf Dauer ist reines JavaScript teilweise nervig und unnötig umständlich. Hier können Erweiterungs-Bibliotheken Abhilfe schaffen. | ||
+ | ===== jQuery ===== | ||
+ | [[https:// | ||
+ | |||
+ | > JQuery is used by 63.8% of all the websites, that is a JavaScript library market share of 95.1%. [[http:// | ||
+ | |||
+ | jQuery ist nicht standardmäßig im Browser verfügbar und muss eingebunden werden. Dazu gibt es, analog zu externen CSS-Dateien, | ||
+ | |||
+ | <code html> | ||
+ | < | ||
+ | < | ||
+ | <script src=" | ||
+ | </ | ||
+ | < | ||
+ | ... weitere HTML-Elemente ... | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Nicht nur Bibliotheken lassen sich importieren, | ||
+ | |||
+ | jQuery kapselt (überdeckt) JavaScript-Funktionalität und bietet eine einfachere und kürzere Schreibweise. Der Zugriff auf HTML-Elemente ähnelt den Selektoren von CSS. So kann auf id's (**#**), Klassen (**.**) und direkt auf HTML-Tags (**h1**) zugegriffen werden. Um auf ein Element per jQuery zuzugreifen, | ||
+ | <code javascript> | ||
+ | // jQuery Schreibweise für: document.getElementById(" | ||
+ | var link = | ||
+ | // deutlich kürzer :) | ||
+ | console.log(link); | ||
+ | </ | ||
+ | |||
+ | ===== Inhalt eines HTML-Element verändern ===== | ||
+ | <code javascript> | ||
+ | // Gibt "Hello World" in der Konsole aus | ||
+ | // console.log(document.getElementById(" | ||
+ | console.log($("# | ||
+ | |||
+ | // Ändert "Hello World" in " | ||
+ | // document.getElementById(" | ||
+ | $("# | ||
+ | </ | ||
+ | |||
+ | ===== HTML-Attribut ändern ===== | ||
+ | <code javascript> | ||
+ | // Ändert das Ziel des Links auf " | ||
+ | // document.getElementById(" | ||
+ | $("# | ||
+ | |||
+ | // Linkziel wird in neuem Fenster geöffnet (Das Attribut wird neu hinzugefügt) | ||
+ | // document.getElementById(" | ||
+ | $("# | ||
+ | |||
+ | $("# | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Aussehen eines HTML-Elements verändern (CSS) ===== | ||
+ | Besonders wichtig ist das Style-Attribute. Eine einfache Syntax ermöglicht es, das Aussehen des HTML-Elements sehr leicht zu ändern. | ||
+ | |||
+ | <code javascript> | ||
+ | // Speichere in der Variablen " | ||
+ | var element = $("# | ||
+ | |||
+ | // Setzt die Schriftgroesse auf 25px | ||
+ | // element.style.fontSize = " | ||
+ | element.css(" | ||
+ | |||
+ | // Versteckt das Element (Das Element ist aber noch da!) | ||
+ | // element.style.display = " | ||
+ | element.hide(); | ||
+ | |||
+ | // Zeigt das Element wieder an | ||
+ | // element.style.display = " | ||
+ | element.show(); | ||
+ | |||
+ | // Sogar mehrere CSS-Anweisungen in einem | ||
+ | // Text wird gelb und bekommt einen schwarzen Rahmen | ||
+ | element.css({color: | ||
+ | </ | ||
+ | |||
+ | ===== HTML-Element hinzufügen ===== | ||
+ | Jetzt wird es schön! | ||
+ | |||
+ | <code javascript> | ||
+ | // Speichere das HTML-Element in der Variable " | ||
+ | // var newElement = document.createElement(" | ||
+ | // newElement.innerHTML = "Hallo Neue Welt"; | ||
+ | // document.body.appendChild(newElement); | ||
+ | |||
+ | // 2 Zeilen gespart | ||
+ | $(" | ||
+ | |||
+ | // Fügt das Element ganz am Anfang ein | ||
+ | $(" | ||
+ | </ | ||
+ | |||
+ | ===== HTML-Element löschen ===== | ||
+ | Im unterschied zum Ausblenden eines HTML-Elements (via CSS), kann ein Element auch komplett entfernt werden. Dazu muss es von seinem " | ||
+ | |||
+ | <code javascript> | ||
+ | // var element = document.getElementById(" | ||
+ | // document.body.removeChild(element); | ||
+ | |||
+ | // Element holen und löschen (Elternelement ist egal) | ||
+ | $("# | ||
+ | </ | ||
+ | |||
+ | ===== HTML-Element finden ===== | ||
+ | Wie gesehen, kann jQuery Elemente anhand ihrer id finden. Aber auch Klassen und Elementtypen werden gefunden. | ||
+ | |||
+ | <code html> | ||
+ | < | ||
+ | <a href=" | ||
+ | <h2 class=" | ||
+ | <div> | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <code javascript> | ||
+ | console.log($("# | ||
+ | // Link | ||
+ | |||
+ | console.log($(" | ||
+ | // Überschrift | ||
+ | |||
+ | console.log($(" | ||
+ | // < | ||
+ | </ | ||
+ | |||
+ | Jedoch sind Klassen und Elementtypen nicht eindeutig und der Selektor kann auf mehrere Elemente zutreffen. Was passiert also, wenn 2 '' | ||
+ | |||
+ | <code html> | ||
+ | < | ||
+ | <div> | ||
+ | < | ||
+ | </ | ||
+ | <div class=" | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <code javascript> | ||
+ | console.log($(" | ||
+ | // Text 1 | ||
+ | |||
+ | console.log($(" | ||
+ | // [div, div.second] eine liste von Elementen | ||
+ | |||
+ | console.log($(" | ||
+ | // Text 2 | ||
+ | </ | ||
+ | |||
+ | jQuery benutzt den ersten Eintrag aus einer Liste, wenn eine Funktion für ein einzelnes Element aufgerufen wird. Das ist einerseits sehr tolerant, kann aber auch die Fehlersuche erschweren. Darum immer so genau wie möglich selektieren (mit id's oder Klassen) - das gilt auch für CSS. | ||
+ | |||
+ | |||
+ | ===== Zusammenfassung ===== | ||
+ | jQuery vereinfacht die Zugriffe auf HTML-Elemente und bietet mächtige Erweiterungn für JavaScript. Alle Funktionen finden sich in der [[http:// | ||
+ | |||
+ | In dieser Lektion haben wir gelernt, wie HTML-Elemente mit jQuery angesprochen und verändert werden können. Weiterhin haben wir gesehen, dass jQuery bei einem Aufruf mit einem zu allgemeinen Selektor unter Umständen eine List von Elementen zurück liefert. | ||
+ | |||
+ | ==== Aufgabe ==== | ||
+ | - Führe die Aufgaben aus Lektion 2 mit jQuery aus \\ // Schreibe diesmal alle Befehle in eine JavaScript-Datei // | ||
+ | - Lade dir das Zip-Archiv " | ||
+ | - Ändere das Bild " | ||
+ | - Füge der h1 Überschrift die CSS-Eigenschaft kursiv hinzu | ||
+ | - Ändere im (einzigen) ''< | ||
+ | |||
+ | [[javascripting: |