¿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')

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

Respuestas:


900
if (typeof jQuery != 'undefined') {  
    // jQuery is loaded => print the version
    alert(jQuery.fn.jquery);
}

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 )

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!


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.


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.


@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


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
}

¿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);

1

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


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);

-2
if (jQuery){
   //jquery loaded
}

.....


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.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.