Como verificar qual versão do jQuery está carregada?

466

Como verifico qual versão do jQuery está carregada na máquina cliente? O cliente pode ter o jQuery carregado, mas não sei como verificá-lo. Se eles o tiverem carregado, como verifico a versão e o prefixo, como:

$('.class')
JQuery('.class')
Luke101
fonte
2
O cliente pode ter o jQuery carregado se você o incluiu como um arquivo para download. Qual é o problema exatamente?
Jared Farrish
1
Não sei o que o OP precisa, mas se você estiver criando um script ou plugin que requer jQuery, poderá verificar e gerar um erro se ele não estiver lá ou em uma versão muito antiga.
7118 JJJ
1
possível duplicata de Get jQuery versão de inspecionar o objeto jQuery
MOLOT

Respostas:

900
if (typeof jQuery != 'undefined') {  
    // jQuery is loaded => print the version
    alert(jQuery.fn.jquery);
}
Darin Dimitrov
fonte
29
Existem 2 maneiras de verificar a versão do jquery atualmente carregada: jQuery.fn.jquerye jQuery().jquery(taquigrafia:) $.fn.jquery $().jquery. Eu escrevi sobre isso em detalhes com links para o código-fonte jquery, se você quiser ir mais fundo.
Uzbekjon
3
versão ainda mais simples if (window.jQuery) { // jQuery is loaded => print the version alert(jQuery.fn.jquery); }
asherrard 14/03
6
A verificação de indefinido deve ser!==
plankguy
1
Nota em minúsculas :)
The Red Pea
2
Não use jQuery().jquery. Ele cria um objeto jQuery para nada, basta usar o que a resposta diz.
30

Você pode apenas verificar se o jQueryobjeto existe:

if( typeof jQuery !== 'undefined' ) ... // jQuery loaded

jQuery().jquery tem o número da versão.

Quanto ao prefixo, jQuerydeve sempre funcionar. Se você deseja usar, $pode agrupar seu código em uma função e passar jQuerypara ela como o parâmetro:

(function( $ ) {
    $( '.class' ).doSomething();  // works always
})( jQuery )
JJJ
fonte
3
O if( jQuery )lançará uma exceção se jQueryfor desconhecido e não funcionará.
Darin Dimitrov
Talvez envolvê-lo try {...}catch(e){...}?
Akash
2
Não use jQuery().jquery. Ele cria um objeto jQuery para nada. (comentário copiado de outra resposta)
törzsmókus 17/09/19
19
$.fn.jquery
// If there is concern that there may be multiple implementations of `$` then:
jQuery.fn.jquery

Se você receber um número de versão - geralmente como uma string -, o jQuery será carregado e é com essa versão que você está trabalhando. Se não estiver carregado, você deve voltar undefinedou talvez até um erro.

Uma pergunta bastante antiga e já vi algumas pessoas que já mencionaram minha resposta nos comentários. No entanto, acho que, às vezes, grandes respostas deixadas como comentários podem passar despercebidas; especialmente quando há muitos comentários para uma resposta, você pode se deparar com uma pilha deles procurando por uma jóia. Espero que isso ajude alguém!

Rockin4Life33
fonte
1
@ Janar Não, não é exatamente o mesmo. Muito complicado em contraste, IMO.
Rockin4Life33
18

… Só porque esse método ainda não foi mencionado - abra o console e digite:

$ === jQuery

Como @Juhana mencionado acima $().jqueryretornará o número da versão.

ptim
fonte
algo como($ === jQuery)?$().jquery:'no jquery';
UselesssCat
1
O OP pediu para verificar a versão carregada. Isso não responde à pergunta.
Akira Yamamoto
16

Eu descobri que essa é a maneira mais curta e simples de verificar se o jQuery está carregado:

if (window.jQuery) {
    // jQuery is available.

    // Print the jQuery version, e.g. "1.0.0":
    console.log(window.jQuery.fn.jquery);
}

Este método é usado por http://html5boilerplate.com e outros.

Markus Amalthea Magnuson
fonte
@AndreFigueiredo Editei a resposta para incluir como obter o número da versão, depois de me certificar de que o jQuery está carregado.
Markus Amalthea Magnuson
5

Minha preferência é:

console.debug("jQuery "+ (jQuery ? $().jquery : "NOT") +" loaded")

Resultado:

jQuery 1.8.0 carregado

sshel207
fonte
Eu recebo: indefinido
Joe L.
Isso é um pouco melhor, mas o registro não é tão útil quando se trabalha em um aplicativo. É melhor salvar uma variável primeiro. let has$ = typeof jQuery === 'function'; console.log('jQuery' + (has$ ? ` version ${jQuery.fn.jquery} loaded.` : ' is not loaded.'));
3

Na verdade, você deve agrupar isso em um bloco try / catch para o IE:

// Ensure jquery is loaded -- syntaxed for IE compatibility
try
{
    var jqueryIsLoaded=jQuery;
    jQueryIsLoaded=true;
}
catch(err)
{
    var jQueryIsLoaded=false;
}
if(jQueryIsLoaded)
{
    $(function(){
        /** site level jquery code here **/
    });
}
else
{
    // Jquery not loaded
}
AlienWebguy
fonte
IE não lida typeof jQuery != 'undefined'? Isso é verdade para todos os IE ou apenas os mais antigos?
21411 JJJ
Certamente é para as versões herdadas. Ainda que é mais constrangedor do que um grande ol' erro JS impedindo sua página de trabalhar, independentemente se é culpa do navegador;)
AlienWebguy
Isso realmente me ajudou muito. Eu estava lutando para obter o comportamento exato no Firefox e no IE para verificar se o jQuery está carregado ou não usando o WatiN. Agora, com esta solução alternativa, estou muito feliz. Graças à você!
31414 rahoolm
2

Em uma linha e no mínimo de pressionamentos de teclas (oops!):

alert($().jquery);
David White
fonte
1

Acesse o desenvolvedor Tool> console e escreva um dos seguintes comandos jQuery.fn.jquery console.log(jQuery().jquery);

Suman Koirala
fonte
0

De acordo com o blog monstro de modelos , digitando, esses scripts abaixo fornecerão a versão do jquery no site que você está percorrendo agora.

 1. console.log(jQuery.fn.jquery);
 2. console.log(jQuery().jquery);
aniruddha
fonte
-2
if (jQuery){
   //jquery loaded
}

.....

gênese
fonte
1
Algumas outras bibliotecas usam $.
Jared Farrish
2
E se eles estiverem usando o Prototype? Ou qualquer outra coisa que usa $? Não é exclusivo do jQuery.
21411 JJJ
E se jQuerynão estiver carregado? (Vai jogar a ReferenceError). A resposta acima está correta e é por isso que as pessoas estão votando negativamente na sua resposta.