(Da ich nicht genug Ruf zu haben scheine, um die Antwort abzustimmen ...)
Wolf schrieb:
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:
// NOTE!! THE FOLLOWING IS WRONG; DO NOT USE! -- EleotleCram
if($("#something") !== null){
// do something
}
oder
// NOTE!! THE FOLLOWING IS WRONG; DO NOT USE! -- EleotleCram
if($("#something") === null){
// don't do something
}
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:
jQuery.fn['any'] = function() {
return (this.length > 0);
};
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.