In jQuery Existenz prüfen

Das praktische an jQuery ist (unter anderem) das es Aktionen auf ein Element nur dann ausführt, wenn das Element existiert. Wenn es nicht existiert: Pech gehabt. Das vereinfacht die Sache ungemein! Aber es kann auch Zustände geben in denen man wissen will, ob ein Element existiert, oder eher nicht. Wenn es nicht existiert könnte man es so zum Beispiel dem DOM einfach hinzufügen. Und genau an der Stelle wird es mystisch, denn es gibt ja (logischerweise) keinen Event und lustigerweise schießt sich an der Stelle jQuery selber in den Fuß.

Screenshot der jQuery Homepage

Normalerweise könnte man ja annehmen, das folgendes funktioniert:

if( $("#test") ) {
  // Element existiert
}

Tut es aber nicht. Selbst dann wenn das Element #test nicht existiert gibt jQuery an der Stelle ein Objekt zurück und geht somit in die Schleife. Was man also machen muss ist im Objekt direkt zu prüfen:

if( $("#test").length > 0 ) {
  // Element existiert
}

Jetzt geht jQuery wirklich nur dann in die Schleife, wenn das Element #test existiert. Also ein wenig aufpassen an der Stelle und schon klappt es ;)

Ähnliche Beiträge

Ideale Formulare in HTML5 Zusammen mit HTML5 wurden Formulare in ihren Möglichkeiten immens aufgewertet, was prinzipiell super ist, wenn man es benutzen könnte. Es ergibt sich ...
Tutorial zur Passwortstärke mit jQuery Der Fall YouPorn hat eindrucksvoll bewiesen, wie simpel Passwörter sind. An der Uni habe ich in einem Kurs echt wilde Dinge gelernt um Systeme zu bela...
HTML5 File Upload in jQuery Eine der sinnvollsten Erweiterungen von HTML5 (und wahrscheinlich auch die am meisten benutzte) ist der neue Datei-Upload. In der Vergangenheit war es...
CLEditor – WYSIWYG-Editor als jQuery-Plugin Normalerweise hat man heutzutage in so ziemlich jedem Webprojekt zwei Dinge: eine Javascript-Library (jQuery oder Mootools) und einen WYSIWYG-Editor u...

3 Antworten auf „In jQuery Existenz prüfen“

  1. „if( $(„#test“) ) { […]“
    „[…] und geht somit in die Schleife […]“

    Argh Guido, es gibt doch keine if-… Ich kanns nicht ausschreiben. Es nennt sich jedenfalls if-Abfrage, da sich da ja nichts wiederholt. Bitte korrigieren, du programmierst doch auch kein HTML. ;)

    1. @Balthazzar Ok, es ist natürlich eine Abfrage, und keine Schleife, den Text habe ich trotzdem nicht korrigiert – bätsch! ;)

  2. Diese Lösung ist nur konsequent, muss man nur mal begriffen haben. Gegenüber der „syntaktischen Eleganz“, die ja jQuery ausmacht, wirkt sie allerdings richtig oldschoolig… ;-)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.