Teste para resultado de seleção jQuery vazio

85

Diz que sim

var s = $('#something');

e a seguir quero testar se o jQuery encontrou #algo, ou seja, quero testar se sestá vazio.

Eu poderia usar minha confiança isempty()nisso:

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

Ou, uma vez que os objetos jQuery são matrizes, acho que poderia testar s.length.

Mas nenhum dos dois parece estar no idioma jQuery, não é muito jQuery. O que você sugere?


fonte
possível duplicata de stackoverflow.com/questions/299802/…
brettkelly
inkedmn, sim, pergunta semelhante, mas não vi a .size()resposta lá, o que eu gosto bastante.
possível duplicata de Existe uma função "existe" para jQuery?
Bergi
Possível duplicata de Como posso detectar se um seletor retorna nulo?
Malik Khalil

Respostas:

5
if($("#something").length > 0 ){
     // Element found
}
else{
    // No element found
}
Malik Khalil
fonte
-1

Uma solução ainda mais jQueryesca para mim é:

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

Isso me permite escrever da maneira típica:

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