514 Stimmen

Wie überprüfen Sie, ob ein Selektor etwas in jQuery entspricht?

In Mootools würde ich einfach Folgendes ausführen if ($('target')) { ... } . Hat if ($('#target')) { ... } in jQuery auf die gleiche Weise funktionieren?

800voto

Pat Punkte 35602

Wie von den anderen Kommentatoren vorgeschlagen, scheint dies der effizienteste Weg zu sein:

if ($(selector).length ) {
    // Do something
}

Wenn Sie unbedingt eine exists()-Funktion haben müssen - was langsamer sein wird - können Sie das tun:

jQuery.fn.exists = function(){return this.length>0;}

Dann können Sie in Ihrem Code Folgendes verwenden

if ($(selector).exists()) {
    // Do something
}

Wie beantwortet aquí

100voto

redsquare Punkte 76970

Nein, jquery gibt immer ein jquery-Objekt zurück, unabhängig davon, ob ein Selektor getroffen wurde oder nicht. Sie müssen .length verwenden

if ( $('#someDiv').length ){

}

22voto

Jon Erickson Punkte 107332

Wenn Sie benutzt haben:

jQuery.fn.exists = function(){return ($(this).length > 0);}
if ($(selector).exists()) { }

Sie würden unterstellen, dass eine Verkettung möglich ist, obwohl dies nicht der Fall ist.

Dies wäre besser

jQuery.exists = function(selector) {return ($(selector).length > 0);}
if ($.exists(selector)) { }

16voto

Sean Curtis Punkte 141
if ($('#elem')[0]) {
  // do stuff
}

16voto

skqr Punkte 663

Ich glaube, die meisten, die hier geantwortet haben, haben die Frage nicht ganz verstanden, oder ich könnte mich auch irren.

Die Frage lautet: "Wie kann man überprüfen, ob ein selector existiert in jQuery."

Die meisten Leute haben dies für "wie man überprüft, ob ein Element in der DOM mit jQuery vorhanden ist." Kaum austauschbar.

jQuery ermöglicht es Ihnen, benutzerdefinierte Selektoren zu erstellen, aber sehen Sie hier, was passiert, wenn Sie versuchen, auf e zu verwenden, bevor es initialisiert;

$(':YEAH');
"Syntax error, unrecognized expression: YEAH"

Nachdem ich dieses Problem entdeckt hatte, stellte ich fest, dass es nur eine Frage der Überprüfung war

if ($.expr[':']['YEAH']) {
    // Query for your :YEAH selector with ease of mind.
}

Zum Wohl.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X