¿Cómo verificar qué versión de jQuery está cargada?

466

¿Cómo verifico qué versión de jQuery está cargada en la máquina cliente? El cliente puede tener jQuery cargado pero no sé cómo verificarlo. Si lo tienen cargado, ¿cómo verifico la versión y el prefijo como:

$('.class')
JQuery('.class')
Lucas101
fuente
2
El cliente puede tener jQuery cargado si lo incluyó como un archivo para descargar. ¿Cuál es el problema exactamente?
Jared Farrish
1
No sé para qué lo necesita el OP, pero si está creando un script o complemento que requiere jQuery, puede verificar y generar un error si no está allí o si es una versión demasiado antigua.
JJJ
1
posible duplicado de la versión Get jQuery al inspeccionar el objeto jQuery
Mołot

Respuestas:

900
if (typeof jQuery != 'undefined') {  
    // jQuery is loaded => print the version
    alert(jQuery.fn.jquery);
}
Darin Dimitrov
fuente
29
Hay 2 formas de verificar la versión jquery cargada actualmente: jQuery.fn.jqueryy jQuery().jquery(shorthands:) $.fn.jquery $().jquery. Escribí al respecto en detalles con enlaces al código fuente de jquery si desea profundizar.
Uzbekjon
3
versión aún más simple if (window.jQuery) { // jQuery is loaded => print the version alert(jQuery.fn.jquery); }
asherrard
66
El cheque para indefinido debe ser!==
plankguy
1
Nota en minúscula :)
The Red Pea
2
No utilice jQuery().jquery. Crea un objeto jQuery para nada, solo usa lo que dice la respuesta.
30

Puede verificar si el jQueryobjeto existe:

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

jQuery().jquery tiene el número de versión.

En cuanto al prefijo, jQuerysiempre debería funcionar. Si desea usarlo $, puede ajustar su código a una función y pasarlo jQuerycomo parámetro:

(function( $ ) {
    $( '.class' ).doSomething();  // works always
})( jQuery )
JJJ
fuente
3
El if( jQuery )arrojará una excepción si jQueryse desconoce y que no va a funcionar.
Darin Dimitrov
Tal vez envolverlo try {...}catch(e){...}?
Akash
2
No utilice jQuery().jquery. Crea un objeto jQuery para nada. (comentario copiado de otra respuesta)
törzsmókus
19
$.fn.jquery
// If there is concern that there may be multiple implementations of `$` then:
jQuery.fn.jquery

Si recupera un número de versión, generalmente como una cadena, entonces se carga jQuery y esa es la versión con la que está trabajando. Si no está cargado, debería volver undefinedo tal vez incluso un error.

Pregunta bastante antigua y he visto algunas personas que ya han mencionado mi respuesta en los comentarios. Sin embargo, encuentro que a veces las respuestas excelentes que quedan como comentarios pueden pasar desapercibidas; especialmente cuando hay muchos comentarios a una respuesta, puede que te encuentres hurgando en montones de ellos en busca de una gema. ¡Ojalá esto ayude a alguien!

Rockin4Life33
fuente
1
@ Janar No, no es exactamente lo mismo. Demasiado complicado en contraste, OMI.
Rockin4Life33
18

... solo porque este método no se ha mencionado hasta ahora: abra la consola y escriba:

$ === jQuery

Como @Juhana mencionado anteriormente $().jquerydevolverá el número de versión.

ptim
fuente
algo así como($ === jQuery)?$().jquery:'no jquery';
UselesssCat
1
OP solicitó verificar la versión cargada. Esto no responde la pregunta.
Akira Yamamoto
16

He encontrado que esta es la forma más corta y simple de verificar si jQuery está cargado:

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

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

Este método es utilizado por http://html5boilerplate.com y otros.

Markus Amalthea Magnuson
fuente
@AndreFigueiredo Edité la respuesta para incluir cómo obtener el número de versión, después de asegurarme de que jQuery esté cargado.
Markus Amalthea Magnuson
5

Mi preferencia es:

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

Resultado:

jQuery 1.8.0 cargado

sshel207
fuente
Obtengo: indefinido
Joe L.
Esto es un poco mejor, pero el registro no es tan útil cuando se trabaja en una aplicación. Es mejor guardar una variable primero. let has$ = typeof jQuery === 'function'; console.log('jQuery' + (has$ ? ` version ${jQuery.fn.jquery} loaded.` : ' is not loaded.'));
3

En realidad, debe envolver esto en un bloque try / catch para 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
fuente
¿IE no maneja typeof jQuery != 'undefined'? ¿Es esto cierto para todos los IE o solo para los más antiguos?
JJJ
Estoy bastante seguro de que es para las versiones heredadas. Todavía lo es más embarazoso que un gran ol' error JS causa de que su página de trabajo, sin importar si es culpa del navegador;)
AlienWebguy
Esto realmente me ha ayudado mucho. Estaba luchando por obtener el comportamiento exacto en Firefox e IE para verificar si jQuery está cargado o no usando WatiN. Ahora con esta solución, estoy muy feliz. ¡Gracias a ti!
rahoolm
2

En una línea y el mínimo de pulsaciones de teclas (¡Uy!):

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

Vaya a la herramienta del desarrollador> consola y escriba uno de los siguientes comandos jQuery.fn.jquery console.log(jQuery().jquery);

Suman Koirala
fuente
0

Según el blog de Monster de plantilla , al escribir, estos scripts a continuación le darán la versión de jquery en el sitio que está recorriendo ahora.

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

.....

génesis
fuente
1
Algunas otras bibliotecas usan $.
Jared Farrish
2
¿Qué pasa si están usando Prototype? ¿O algo más que use $? No es exclusivo de jQuery.
JJJ
¿Qué pasa si jQueryno está cargado? (Lanzará un ReferenceError). La respuesta anterior es correcta, y es por eso que las personas votan negativamente por su respuesta.