jQuery ist eine Ja­va­Script-Bi­blio­thek, die vom ame­ri­ka­ni­schen Software-Ent­wick­ler John Resig ent­wi­ckelt und 2006 unter der freien MIT-Lizenz ver­öf­fent­licht wurde. Die Bi­blio­thek stellt um­fang­rei­che Optionen zur HTML- und CSS-Ma­ni­pu­la­ti­on, zur Steuerung von Events sowie zur Be­schleu­ni­gung von Ajax-Funk­tio­na­li­tä­ten bereit. Diese lassen sich un­kom­pli­ziert nutzen, indem jQuery in den HTML-Quelltext des je­wei­li­gen Web­pro­jekts ein­ge­bun­den und mithilfe von Funk­tio­nen gesteuert wird. jQuery ist in vielen Content-Ma­nage­ment-Systemen und Web­frame­works wie Joomla, WordPress oder MediaWiki bereits in­te­griert und besticht nicht nur durch den ge­wal­ti­gen Funk­ti­ons­um­fang, sondern auch durch die große Community und die stetige Wei­ter­ent­wick­lung, die mitt­ler­wei­le in der Ver­ant­wor­tung des jQuery-Teams liegt.

Das steckt hinter jQuery: Ein­füh­rung in die Mög­lich­kei­ten der Bi­blio­thek

jQuery ver­ein­facht die Pro­gram­mie­rung mit der dy­na­mi­schen Skript­spra­che Ja­va­Script erheblich. Die gesamte jQuery-Bi­blio­thek besteht dabei aus einer einzigen Ja­va­Script-Datei, die die grund­le­gen­den DOM-, Ajax-, Ereignis- und Effekt-Funk­tio­nen enthält. Damit stellt die Bi­blio­thek eine um­fang­rei­che Sammlung von Pro­gramm­tei­len dar, mit deren Hilfe die Elemente von Web­pro­jek­ten be­ar­bei­tet werden können. So wählen Sie bei­spiels­wei­se Objekte aus und verändern deren Aussehen (Farbe, Position etc.), was zwar prin­zi­pi­ell auch mit Ja­va­Script möglich, aber deutlich auf­wän­di­ger zu rea­li­sie­ren ist.

Ferner können Sie mit jQuery noch gezielter auf Aktionen Ihrer Nutzer reagieren – dank er­eig­nis­ge­steu­er­ter Pro­gram­mie­rung der Sei­ten­ele­men­te. Die User lösen zuvor de­fi­nier­te Er­eig­nis­se per Maus­zei­ger oder durch Text­ein­ga­be aus und bekommen die je­wei­li­gen Inhalte oder Ani­ma­tio­nen prä­sen­tiert. Auch grafische Effekte wie Text­ein­blen­dun­gen etc. sind schnell und mit nur einer einzigen Codezeile eingefügt. jQuery ver­ein­facht darüber hinaus die Arbeit mit Ajax. Die Bi­blio­thek optimiert die Tech­no­lo­gie, die im Hin­ter­grund aktuelle Sei­ten­in­hal­te nachlädt, vor allem da­hin­ge­hend, dass sie eine brow­se­r­ü­ber­grei­fen­de Schnitt­stel­le aufweist. Mit deren Hilfe lässt sich die Ajax-Technik schnell für die ver­schie­dens­ten Browser nutzen und ein­rich­ten – selbst veraltete Browser-Versionen sind so abgedeckt. Generell schließt jQuery diverse Lücken zwischen den Ja­va­Script-Im­ple­men­tie­run­gen der einzelnen Browser.

jQuery: Grund­la­gen-Gerüst mit Plug-ins erweitern

Dass der Einsatz von jQuery stets für aktuelle Web­pro­jek­te von Interesse ist, liegt haupt­säch­lich an der einfachen Er­wei­ter­bar­keit der Ja­va­Script-Bi­blio­thek. Tausende Plug-ins, die die Pro­gram­mie­rung weiter ver­ein­fa­chen und jQuery noch mächtiger machen, stehen auf der of­fi­zi­el­len jQuery-Homepage – größ­ten­teils kos­ten­frei – zum Download bereit. An dieser Stelle machen sich die große Ver­brei­tung und die breit­ge­fä­cher­te Community der Bi­blio­thek bezahlt, die einen ent­schei­den­den Anteil an der Ent­wick­lung dieser Er­wei­te­run­gen haben. Ist die ge­wünsch­te Funktion weder im Stan­dard­um­fang noch als Plug-in verfügbar, können sich erprobte Ent­wick­ler auch daran versuchen, eine eigene Er­wei­te­rung zu gestalten.

So binden Sie die Ja­va­Script-Bi­blio­thek ein

Um jQuery für Ihr Projekt nutzen zu können, müssen Sie die Bi­blio­thek zunächst einbinden. Dabei haben Sie entweder die Mög­lich­keit, die Ja­va­Script-Datei auf dem eigenen Webspace zu hosten oder einen Link zu einem externen Webspace zu setzen. Sind Sie an ersterer Variante in­ter­es­siert, finden Sie die Datei im Download-Center der jQuery-Homepage. Dort können Sie zwischen der kom­pri­mier­ten Version für den Live-Einsatz (com­pres­sed, pro­duc­tion jQuery) und der un­kom­pri­mier­ten Ent­wick­ler-Edition (un­com­pres­sed, de­ve­lo­p­ment jQuery) wählen. Um die jeweilige Datei lokal zu speichern, klicken Sie einfach mit der rechten Maustaste auf den be­tref­fen­den Link, wählen „Ziel speichern unter …“ aus und geben das ge­wünsch­te Ziel­ver­zeich­nis an. An­schlie­ßend setzen Sie im <head>-Bereich Ihrer Web­prä­senz den ent­spre­chen­den Link:

<head>
    <script type="text/javascript" src="pfad_zur_jquery_datei/jquery.js"></script>
</head>

Ent­schei­den Sie sich hingegen dafür, die Datei extern zu beziehen, müssen Sie die Referenz im Header ent­spre­chend anpassen. Um z. B. die jQuery-Datei aus den Google Hosted Libraries zu nutzen, geben Sie die folgende Web­adres­se inklusive der je­wei­li­gen Version – im folgenden Link 3.0.0 – als Source-Element (src) an:

http://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js

So ist die jQuery-Syntax aufgebaut

Mit jQuery-Code können Sie auf die HTML-Elemente Ihres Web­pro­jekts zugreifen. Diese Elemente wählen Sie über einen Selektor aus, der sich syn­tak­tisch an CSS-Se­lek­to­ren ori­en­tiert. Darauf folgt in der Regel eine Aktion, die be­schreibt, auf welche Art und Weise das aus­ge­wähl­te Element verändert werden soll. Selektor und Aktion wird zu­sätz­lich ein Dol­lar­zei­chen ($) vor­an­ge­stellt, um den Code als jQuery-Funktion aus­zu­zeich­nen. Dies geschieht, um Ver­wechs­lun­gen bei der Ver­wen­dung ver­schie­de­ner Bi­blio­the­ken zu vermeiden. $() dient dabei als Abkürzung für die jQuery()-Funktion. Die Basis-Syntax lautet also:

$(Selektor).Aktion()

Eine un­ver­zicht­ba­re Codezeile, die jeglichen jQuery-Aus­zeich­nun­gen in Ihrem HTML-Dokument vor­an­ste­hen sollte, ist das Document-Ready-Event. Dieser Code stellt sicher, dass alle darin ent­hal­te­nen jQuery-Kommandos erst aus­ge­führt werden, nachdem sämtliche HTML-Elemente geladen worden sind. Ei­ner­seits werden so Feh­ler­mel­dun­gen vermieden, wenn z. B. ein Element versteckt werden soll, das bisher noch gar nicht angezeigt wird. An­de­rer­seits er­mög­licht das Document-Ready-Event auch, den Code in den <head>-Bereich ein­zu­fü­gen. Der syn­tak­ti­sche Aufbau der an­ge­spro­che­nen Codezeile ent­spricht dem folgenden Muster:

<script type="text/javascript">
    $(document).ready(function(){
        //weiterer jQuery-Code
    });
</script>

Die wich­tigs­ten Se­lek­to­ren

Die jQuery-Se­lek­to­ren sind die wohl wich­tigs­ten Be­stand­tei­le der Ja­va­Script-Bi­blio­thek. Mit ihnen passen Sie die ver­schie­de­nen Elemente Ihrer Website an. Dabei gibt es un­ter­schied­li­che Se­lek­to­ren­ar­ten, die HTML-Einheiten nach ver­schie­de­nen Kriterien wie ID, Klasse, Typ etc. finden und auswählen. Der häufig ver­wen­de­te Element-Selektor ordnet HTML-Elementen die je­wei­li­gen Aktionen anhand ihres Namens zu. So können Sie mit dem folgenden jQuery-Code z. B. de­fi­nie­ren, dass alle <p>-Elemente – also alle Text­blö­cke – aus­ge­blen­det werden, wenn der Website-Besucher auf einen Button klickt:

<script type="text/javascript">
    $(document).ready(function(){
        $("button").click(function(){
            $("p").hide();
        });
    });
</script>

Ein weiterer wichtiger jQuery-Selektor ist der #id-Selektor. Mit ihm zeichnen Sie im HTML-Dokument ein einzelnes Element aus, das danach, bei­spiels­wei­se mit Ja­va­Script, ganz gezielt verändert werden kann, ähnlich wie es auch bei CSS-Ma­ni­pu­la­tio­nen der Fall ist. Sollen nicht alle Text­blö­cke bei einem But­ton­klick des Users aus­ge­blen­det werden, sondern nur ein ganz be­stimm­ter, fügen Sie diesem <p>-Element einen id-Wert hinzu (<p id="testblock">) und ergänzen den Element-Selektor im oberen Code­bei­spiel durch den #id-Selektor:

<script type="text/javascript">
    $(document).ready(function(){
        $("button").click(function(){
            $("#testblock").hide();
        });
    });
</script>

Ein dritter einfacher Selektor ist der .class-Selektor, der zuvor de­fi­nier­te Klassen auswählt und ebenfalls nach der bekannten Methode ein­ge­setzt wird. Weitere nützliche Se­lek­to­ren sind:

Selektor Be­schrei­bung
$("*") wählt alle Elemente aus
$(this) wählt das ge­gen­wär­ti­ge Element aus
$("p:first") wählt das erste <p>-Element aus
$("ul li:first-child") wählt jeweils die erste Lis­ten­ele­men­te <li> aller vor­han­de­nen <ul>-Auf­lis­tun­gen
$("[href]") wählt alle Elemente mit einem href-Attribut aus
$("tr:even") wählt alle geraden Ta­bel­len­zei­len aus
$("tr:odd") wählt alle ungeraden Ta­bel­len­zei­len aus
$("p.intro") wählt alle <p>-Elemente mit der Klasse class="intro" aus

Auf diese User-Er­eig­nis­se können Sie mit jQuery reagieren

Die Besucher Ihrer Website bzw. Nutzer Ihrer Web­an­wen­dung in­ter­agie­ren auf ganz un­ter­schied­li­che Weise mit Ihrem Web­pro­jekt – ob per Mausklick, Tas­ta­tur­ein­ga­be, durch Ausfüllen eines Formulars oder das Ver­grö­ßern eines Fensters. Diese Er­eig­nis­se sind auch als DOM-Events bekannt und können in jQuery als Auslöser für Aktionen definiert werden.

Bei­spiels­wei­se können Sie die Bewegung des Maus­zei­gers zum Auslöser für eine Aktion machen. Das erreicht man mit mou­se­en­ter() bzw. mou­se­lea­ve(). Die erste Funktion reagiert darauf, dass der Nutzer mit dem Maus­zei­ger über das aus­ge­wähl­te HTML-Element fährt, die zweite darauf, dass der Maus­zei­ger das Element wieder verlässt. Der folgende jQuery-Code bewirkt, dass der User über ein Dia­log­fens­ter be­nach­rich­tigt wird, wenn er einen Textblock mit dem Maus­zei­ger anvisiert:

<script type="text/javascript">
    $(document).ready(function(){
        $("p").mouseenter(function(){
            alert("Sie haben einen Textblock ausgewählt!");
        });
    });
</script>

Andere wichtige Auslöser sind:

Auslöser Be­schrei­bung
focus() wird ausgelöst, wenn ein Element in den Fokus genommen wird (per Mausklick oder Tab)
blur() wird ausgelöst, wenn ein Element aus dem Fokus genommen wird
keydown() wird ausgelöst, wenn eine Taste gedrückt und gehalten wird
keyup() wird ausgelöst, wenn eine Taste los­ge­las­sen wird
change() wird ausgelöst, wenn eine Tas­ta­tur­ein­ga­be getätigt wurde oder eine Auswahl getroffen wurde
scroll() wird ausgelöst, wenn in dem aus­ge­wähl­ten Element gescrollt wird
select() wird ausgelöst, wenn Text in dem aus­ge­wähl­ten Formular-Ein­ga­be­feld markiert wird

Mithilfe von on() können Sie außerdem mehrere Auslöser zu einem aus­ge­wähl­ten Element hin­zu­fü­gen und so pro­blem­los ver­schie­de­ne Er­eig­nis­se kom­bi­nie­ren. Mit dem folgenden jQuery-Code erreichen Sie z. B., dass die Hin­ter­grund­far­be von <p>-Elementen sich sowohl ändert, wenn die Besucher diese auswählen (blue), als auch wenn sie diese wieder abwählen (red) oder darauf klicken (yellow):

<script type="text/javascript">
    $("p").on({
        mouseenter: function(){
            $(this).css("background-color", "blue");
         }, 
        mouseleave: function(){
             $(this).css("background-color", "red");
        }, 
        click: function(){
            $(this).css("background-color", "yellow");
        } 
    }); 
</script>

Für einen aus­führ­li­chen Einblick in die voll­stän­di­ge Funk­ti­ons­pa­let­te der Ja­va­Script-Bi­blio­thek – auch in Ver­knüp­fung mit der Ajax-Tech­no­lo­gie – empfehlen wir Ihnen das eng­lisch­spra­chi­ge jQuery-Tutorial auf w3schools.com, das eine große Anzahl an Code­bei­spie­len für jQuery be­reit­hält.

Zum Hauptmenü