92 votes

Test pour un résultat de sélection jQuery vide

Dites que je le fais

var s = $('#something');

et ensuite je veux tester si jQuery a trouvé #quelquechose, c'est-à-dire que je veux tester si s est vide.

Je pourrais utiliser mon fidèle isempty() sur elle :

function isempty(o) {
    for ( var i in o )
        return false;
    return true;
}

Ou comme les objets jQuery sont des tableaux, je suppose que je pourrais tester s.length .

Mais ni l'un ni l'autre ne semble tout à fait dans l'idiome de jQuery, pas très jQueryesque. Que suggérez-vous ?

109voto

Billiam Points 1044

Utilisez la propriété s.length.

if(s.length == 0) {
    ...
}

[edit] size() déprécié dans jquery 1.8 http://api.jquery.com/size/

6voto

Malik Khalil Points 3287
if($("#something").length > 0 ){
     // Element found
}
else{
    // No element found
}

2voto

Peter J Points 23798

Je croyais me souvenir que cette question avait déjà été posée. Voici le lien SO .

0voto

Zubair1 Points 1313

Vous cherchez jQuery.isEmptyObject() ?

http://api.jquery.com/jquery.isemptyobject/

0voto

NotVonKaiser Points 2148

Une solution encore plus jQueryesque pour moi est :

jQuery.fn.isEmpty = function(fun){ if (this.length === 0) { fun(); } return this; };

Cela me permet d'écrire de façon typique :

$("#sel").fadeOut(500,afterFade).isEmpty(insteadOfFade);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X