Wie man Nullobjekte in jQuery überprüft
Ich bin mit jQuery und ich möchten zu prüfen die Existenz eines Elements in meine Seite. Ich habe folgenden code geschrieben, aber es funktioniert nicht:
if($("#btext" + i) != null) {
//alert($("#btext" + i).text());
$("#btext" + i).text("Branch " + i);
}
Wie prüfe ich die Existenz des Elements?
InformationsquelleAutor der Frage Prashant | 2009-01-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen Sie die jQuery-FAQ...
Können Sie die length-Eigenschaft verwenden der jQuery-collection zurückgegeben, indem Sie Ihren Selektor:
InformationsquelleAutor der Antwort Christoph
(Da ich nicht scheinen, um genug Ruf zu Stimmen unten die Antwort...)
Wolf schrieb:
Während es wahr ist, dass der Aufruf der length-Eigenschaft auf undefined oder null-Objekt verursachen Browsern fehlschlägt, ist das Ergebnis von jQuery-Selektoren ($( ' ... ' )) nie null oder undefined. Damit die code-Vorschläge machen keinen Sinn. Verwenden Sie eine der anderen Antworten, Sie machen mehr Sinn.
(Update 2012), Weil die Leute Blick auf code und diese Antwort ist ziemlich hoch oben in der Liste: Für die letzten paar Jahre, ich habe mit diesem kleinen plugin:
Ich denke $('div').jede() liest sich besser als $('div').Längeplus Sie werden nicht so viel leiden aus Tippfehler: $('div').ayn() geben einen runtime error, $('div').Länge lautlos wahrscheinlich immer falsy.
__
Bearbeitungen november 2012:
1), Weil die Menschen neigen dazu, Blick auf code und nicht Lesen, was gesagt wird, um den code, ich habe zwei große caveat lector Hinweise zu den zitierten code von Wolf.
2) ich code Hinzugefügt, der das kleine plugin ich für diese situation.
InformationsquelleAutor der Antwort eleotlecram
Die lookup-Funktion gibt ein array der passenden Elemente. Man könnte prüfen, ob die Länge gleich null ist. Beachten Sie die änderung nur schauen bis die Elemente einmal und verwenden Sie die Ergebnisse nach Bedarf.
Außerdem haben Sie versucht, nur mithilfe der text-Funktion-wenn kein element vorhanden ist, wird es nichts tun.
InformationsquelleAutor der Antwort tvanfosson
jquery $ () - Funktion immer wieder nicht-null-Wert - Mittelwert-Elemente abgestimmt selector cretaria. Wenn das element nicht gefunden wurde, wird es gibt ein leeres array zurück.
So Ihr code wird in etwa so Aussehen -
InformationsquelleAutor der Antwort waney
In jQuery 1.4, bekommen Sie die $.isEmptyObject Funktion, aber wenn Sie gezwungen sind, verwenden Sie eine ältere version von jQ, wie Sie uns Armen Drupal Entwickler nur stehlen, verwenden Sie diesen code:
Verwenden Sie es wie:
InformationsquelleAutor der Antwort theamoeba
egal, was Sie Auswahl ist die Funktion
$()
immer wieder ein jQuery-Objekt, so dass kann nicht verwendet werden, zu testen. Der beste Weg, noch (wenn nicht die einzige) ist es, diesize()
- Funktion oder die native Eigenschaft Länge wie oben erklärt.InformationsquelleAutor der Antwort burntblark
Dem jQuery-Objekt, das zurückgegeben wird, durch alle nativen jQuery-Methoden ist KEIN array, es ist ein Objekt mit vielen Eigenschaften, einer von Ihnen, ein "length" - Eigenschaft. Sie können auch prüfen, ob size() oder get(0) oder get () - '(0)' funktioniert genauso wie der Zugriff auf das erste element, D. H. $(elem)[0]
InformationsquelleAutor der Antwort James
verwenden
$("#selector").get(0)
zu prüfen, mit null ähnlich. erhalten gibt das dom-element, bis dann Sie re Umgang mit einem array, wo Sie brauchen, um zu überprüfen, die Eigenschaft length. Ich persönlich mag keine Länge prüfen, für die Behandlung von null, es verwirrt mich aus irgendeinem Grund 🙂InformationsquelleAutor der Antwort Emre
Mithilfe der length-Eigenschaft können Sie dies tun.
InformationsquelleAutor der Antwort Suresh Pattu
Was ist mit "undefined"?
InformationsquelleAutor der Antwort Hugh Seagraves
wenn das Objekt leer ist, kehren diese Fehler:
Uncaught TypeError: Cannot read property '0' of null
ich versuche diesen code
try{
if ($("#btext" + i).length) {};
}
catch(err){
if ($("#btext" + i).length) {
//working this code if item not NULL
};
}
InformationsquelleAutor der Antwort ahmadjn
InformationsquelleAutor der Antwort 한지만
Aufrufen length-Eigenschaft auf undefined oder null-Objekt verursachen, IE und webkit-Browsern zu scheitern!
Stattdessen versuchen Sie dies:
oder
InformationsquelleAutor der Antwort Wolf