Ich verwende jQuery und möchte die Existenz eines Elements auf meiner Seite überprüfen. Ich habe folgenden Code geschrieben, aber er funktioniert nicht:
if($("#btext" + i) != null) {
//alert($("#btext" + i).text());
$("#btext" + i).text("Branch " + i);
}
Wie überprüfe ich die Existenz des Elements?
lenght
anstelle von verwendet habenlength
; Es ist ein Rechtschreibfehler..length
.(Da ich nicht genug Ruf zu haben scheine, um die Antwort abzustimmen ...)
Wolf schrieb:
Zwar führt das Aufrufen der Eigenschaft length für ein undefiniertes oder null-Objekt zum Ausfall von Browsern, doch das Ergebnis der Selektoren von jQuery ($ ('...')) ist niemals null oder undefiniert. Daher machen die Codevorschläge keinen Sinn. Verwenden Sie eine der anderen Antworten, sie sind sinnvoller.
(Update 2012) Weil die Leute sich Code ansehen und diese Antwort ganz oben auf der Liste steht: In den letzten Jahren habe ich dieses kleine Plugin verwendet:
Ich denke, $ ('div'). Any () liest sich besser als $ ('div'). Length , außerdem leiden Sie nicht so sehr unter Tippfehlern: $ ('div'). Ayn () gibt einen Laufzeitfehler aus , $ ('div'). Länge wird lautlos höchstwahrscheinlich immer falsch sein.
__
Änderungen November 2012:
1) Da die Leute dazu neigen, Code zu betrachten und nicht zu lesen, was um den Code herum gesagt wird, habe ich dem zitierten Code von Wolf zwei große Vorbehaltsnotizen hinzugefügt.
2) Ich habe den Code des kleinen Plugins hinzugefügt, das ich für diese Situation verwende.
quelle
Die Suchfunktion gibt ein Array übereinstimmender Elemente zurück. Sie können überprüfen, ob die Länge Null ist. Beachten Sie die Änderung, dass die Elemente nur einmal nachgeschlagen und die Ergebnisse nach Bedarf wiederverwendet werden.
Haben Sie auch versucht, nur die Textfunktion zu verwenden? Wenn kein Element vorhanden ist, führt dies zu nichts.
quelle
Die Funktion jquery $ () gibt immer einen Wert ungleich Null zurück - mittlere Elemente, die mit Ihrer Selektor-Kretaria übereinstimmen. Wenn das Element nicht gefunden wurde, wird ein leeres Array zurückgegeben. Ihr Code sieht also ungefähr so aus -
quelle
In jQuery 1.4 erhalten Sie die Funktion $ .isEmptyObject. Wenn Sie jedoch gezwungen sind, eine ältere Version von jQ wie uns armen Drupal-Entwicklern zu verwenden, stehlen Sie einfach diesen Code:
Verwenden Sie es wie:
quelle
Unabhängig von Ihrer Auswahl gibt die Funktion
$()
immer ein jQuery-Objekt zurück, sodass es nicht zum Testen verwendet werden kann. Der bisher beste Weg (wenn nicht der einzige) besteht darin, diesize()
Funktion oder die native Längeneigenschaft wie oben erläutert zu verwenden.quelle
Das jQuery-Objekt, das von allen nativen jQuery-Methoden zurückgegeben wird, ist KEIN Array, sondern ein Objekt mit vielen Eigenschaften. Eine davon ist eine "Längen" -Eigenschaft. Sie können auch nach Größe () oder get (0) oder get () suchen - 'get (0)' funktioniert genauso wie der Zugriff auf das erste Element, dh $ (elem) [0]
quelle
Was ist mit "undefined"?
quelle
Verwenden Sie
$("#selector").get(0)
diese Option, um mit null zu prüfen. get gibt das dom-Element zurück. Bis dahin handelt es sich um ein Array, in dem Sie die Eigenschaft length überprüfen müssen. Ich persönlich mag keine Längenprüfung für die Nullbehandlung, das verwirrt mich aus irgendeinem Grund :)quelle
Mit der Eigenschaft length können Sie dies tun.
quelle
Wenn das Objekt leer ist, geben Sie diesen Fehler zurück:
Ich versuche diesen Code:
quelle
quelle
Das Aufrufen der Eigenschaft length für ein undefiniertes oder ein Null-Objekt führt dazu, dass IE- und Webkit-Browser fehlschlagen!
Versuchen Sie stattdessen Folgendes:
oder
quelle