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:
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.
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:
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!
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 compatibilitytry{var jqueryIsLoaded=jQuery;
jQueryIsLoaded=true;}catch(err){var jQueryIsLoaded=false;}if(jQueryIsLoaded){
$(function(){/** site level jquery code here **/});}else{// Jquery not loaded}
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!):
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.
Respostas:
fonte
jQuery.fn.jquery
ejQuery().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.if (window.jQuery) { // jQuery is loaded => print the version alert(jQuery.fn.jquery); }
!==
jQuery().jquery
. Ele cria um objeto jQuery para nada, basta usar o que a resposta diz.Você pode apenas verificar se o
jQuery
objeto existe:jQuery().jquery
tem o número da versão.Quanto ao prefixo,
jQuery
deve sempre funcionar. Se você deseja usar,$
pode agrupar seu código em uma função e passarjQuery
para ela como o parâmetro:fonte
if( jQuery )
lançará uma exceção sejQuery
for desconhecido e não funcionará.try {...}catch(e){...}
?jQuery().jquery
. Ele cria um objeto jQuery para nada. (comentário copiado de outra resposta)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!
fonte
… Só porque esse método ainda não foi mencionado - abra o console e digite:
Como @Juhana mencionado acima
$().jquery
retornará o número da versão.fonte
($ === jQuery)?$().jquery:'no jquery';
Eu descobri que essa é a maneira mais curta e simples de verificar se o jQuery está carregado:
Este método é usado por http://html5boilerplate.com e outros.
fonte
Minha preferência é:
Resultado:
jQuery 1.8.0 carregado
fonte
let has$ = typeof jQuery === 'function'; console.log('jQuery' + (has$ ? ` version ${jQuery.fn.jquery} loaded.` : ' is not loaded.'));
Na verdade, você deve agrupar isso em um bloco try / catch para o IE:
fonte
typeof jQuery != 'undefined'
? Isso é verdade para todos os IE ou apenas os mais antigos?Em uma linha e no mínimo de pressionamentos de teclas (oops!):
fonte
Acesse o desenvolvedor Tool> console e escreva um dos seguintes comandos
jQuery.fn.jquery
console.log(jQuery().jquery);
fonte
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.
fonte
.....
fonte
$
.$
? Não é exclusivo do jQuery.jQuery
não estiver carregado? (Vai jogar aReferenceError
). A resposta acima está correta e é por isso que as pessoas estão votando negativamente na sua resposta.