Was ist der beste Weg, um festzustellen, ob ein jQuery-Selektor ein leeres Objekt zurückgibt? Wenn Sie tun:
alert($('#notAnElement'));
Du bekommst [Objekt Objekt], also mache ich es jetzt so:
alert($('#notAnElement').get(0));
Das wird "undefined" schreiben, und so können Sie das überprüfen. Aber es scheint sehr schlimm. Welchen anderen Weg gibt es?
jquery
jquery-selectors
Peirix
quelle
quelle
this
viel hilfreicher ist alstrue
. Siehe meine Antwort zur Portierung der Rails-presence
Methode.this
einer Variablen verwenden möchten, würde ich empfehlen , die return-Anweisung in CSharp zu ändern .quelle
Der Selektor gibt ein Array von jQuery-Objekten zurück. Wenn keine übereinstimmenden Elemente gefunden werden, wird ein leeres Array zurückgegeben. Sie können die
.length
vom Selektor zurückgegebene Sammlung überprüfen oder prüfen, ob das erste Array-Element 'undefiniert' ist.Sie können verwenden alle die folgenden Beispiele innerhalb einer IF - Anweisung und sie alle das gleiche Ergebnis. True, wenn der Selektor ein passendes Element gefunden hat, andernfalls false.
quelle
.length
sei denn, der Code ist heiß. Es ist sicherlich das klarste mit Absicht. Auch.size()
ist veraltet und seit Jahren (seit 1.8). Ich werde nur Ihre Antwort bearbeiten und diese entfernen. Sie können sie gerne mit einer Notiz wieder hinzufügen, aber sie ist so alt, dass ich denke, sie ist besser weg.Ich mache gerne so etwas:
Dann können Sie so etwas tun:
http://jsfiddle.net/vhbSG/
quelle
TypeError: firstExistingElement.doSomething is not a function
. Sie können die gesamte Variablenzuweisung / den Test in ein if () einschließen und nur dann etwas tun, wenn ein Element gefunden wird ....Ich benutze gerne
presence
, inspiriert von Ruby on Rails :Ihr Beispiel wird:
Ich finde es dem vorgeschlagenen überlegen,
$.fn.exists
weil Sie immer noch boolesche Operatoren oder verwenden könnenif
, aber das wahrheitsgemäße Ergebnis ist nützlicher. Ein anderes Beispiel:quelle
Meine Präferenz und ich habe keine Ahnung, warum dies nicht bereits in jQuery ist:
So verwendet:
Oder wie es in CoffeeScript aussieht:
quelle
Dies ist in der JQuery-Dokumentation enthalten:
http://learn.jquery.com/using-jquery-core/faq/how-do-i-test-whether-an-element-exists/
quelle
Möglicherweise möchten Sie dies standardmäßig die ganze Zeit tun. Ich habe versucht, die jquery-Funktion oder die jquery.fn.init-Methode zu umbrechen, um dies ohne Fehler zu tun, aber Sie können dazu einfach die jquery-Quelle ändern. Enthalten sind einige umgebende Linien, nach denen Sie suchen können. Ich empfehle, jquery source nach zu suchen
The jQuery object is actually just the init constructor 'enhanced'
Last but not least können Sie den unkomprimierten jquery-Quellcode hier herunterladen: http://code.jquery.com/
quelle