1 1 Stimme

jQuery: Ist Element vorhanden?

Tipp von Progger99 | 28.01.2013 um 16:23 Uhr

Manchmal möchte man mit jQuery prüfen, ob ein Element auf der aktuellen Seite existiert. Zum Beispiel, um ein Element nur dann zu laden, wenn es nicht schon vorhanden ist.

Wir arbeiten dabei über die Eigenschaft length:

if ($('#a').length == 0) {
  alert('Das Element mit der ID a ist nicht vorhanden.');
}

if ($('#b').length > 0) {
  alert('Das Element mit der ID a ist vorhanden.');
}

Der Trick: jQuery speichert alle Elemente in einem Array. Haben wir einen beliebigen Selektor, können wir über length die Länge dieses Arrays abfragen. Ist die Länge 0, so wissen wir dass es keine Elemente für diesen Selektor gibt, die gefragten Elemente sind also nicht vorhanden.

Im Beispiel können wir jeden beliebigen jQuery Selektor verwenden. Daher können wir auch auf das Vorhandensein von Gruppen, Klassen oder zum Beispiel Bilder testen, in dem wir einfach den entsprechenden Selektor verwenden:

if ($('.klasse').length > 0) {
  alert('Elemente der Klasse klasse sind vorhanden.');
}

if ($('img').length > 0) {
  alert('Die Seite enthält Bilder.');
}

if ($('#a.b').length > 0) {
  alert('Element mit der ID a hat Klasse b zugewiesen.');
}

In diesem Beispiel schauen wir zum Beispiel nach, ob es auf der Seite Elemente der Klasse "klasse" oder Bilder gibt. Außerdem testen wir, ob es ein Element mit der ID "a" gibt, dem die Klasse "b" zugewiesen ist. Wie man sieht: Es sind alle typischen jQuery Selektoren möglich.

AntwortenPositivNegativ

Stefan Trost

Profil anzeigen | Nachricht
Avatar
33 Stimmen

Wer es noch einfacher haben will, lässt einfach das "> 0" weg:

if ($('#b').length) {
  alert('Das Element mit der ID a ist vorhanden.');
}

Es funktioniert auch so, da die Bedingung bei einer Länge von 0 "false" liefert und "true" bei einer Länge größer 0.
10.09.2013 um 13:53 Uhr

AntwortenPositiv Negativ
Antworten

Über den Autor

Avatar AutorDer Autor hat keine Kurzbeschreibung seines Profils angegeben.
Profil anzeigen | Nachricht

 

Ähnliche Themen

jQuery: Element ersetzen
Frage | 1 Antwort

Wichtiger Hinweis

Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.