(Puisque je ne semble pas avoir assez de réputation pour voter contre la réponse...)
Wolf écrit :
L'appel de la propriété length sur un objet indéfini ou un objet nul provoquera l'échec des navigateurs IE et webkit à échouer !
Essayez plutôt ceci :
// NOTE!! THE FOLLOWING IS WRONG; DO NOT USE! -- EleotleCram
if($("#something") !== null){
// do something
}
o
// NOTE!! THE FOLLOWING IS WRONG; DO NOT USE! -- EleotleCram
if($("#something") === null){
// don't do something
}
S'il est vrai que l'appel de la propriété length sur un objet non défini ou nul fera échouer les navigateurs, le résultat des sélecteurs de jQuery (le $('...')) sera jamais être nulle ou indéfinie. Les suggestions de code n'ont donc aucun sens. Utilisez une des autres réponses, elles ont plus de sens.
(Mise à jour 2012) Parce que les gens regardent le code et cette réponse est assez haut dans la liste : Depuis quelques années, j'utilise ce petit plugin :
jQuery.fn['any'] = function() {
return (this.length > 0);
};
Je pense $('div').any() se lit mieux que $('div').length De plus, vous ne souffrirez pas autant des fautes de frappe : $('div').ayn() donnera lieu à une erreur d'exécution, $('div').lenght sera silencieusement et très probablement toujours faussé.
__
Edités en novembre 2012 :
1) Comme les gens ont tendance à regarder le code et à ne pas lire ce qui est dit autour du code, j'ai ajouté deux grandes notes de type "caveat lector" au code cité de Wolf.
2) J'ai ajouté le code du petit plugin que j'utilise pour cette situation.