¿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:
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.
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.
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!
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 compatibilitytry{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!):
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.
¿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.
Respuestas:
fuente
jQuery.fn.jquery
yjQuery().jquery
(shorthands:)$.fn.jquery
$().jquery
. Escribí al respecto en detalles con enlaces al código fuente de jquery si desea profundizar.if (window.jQuery) { // jQuery is loaded => print the version alert(jQuery.fn.jquery); }
!==
jQuery().jquery
. Crea un objeto jQuery para nada, solo usa lo que dice la respuesta.Puede verificar si el
jQuery
objeto existe:jQuery().jquery
tiene el número de versión.En cuanto al prefijo,
jQuery
siempre debería funcionar. Si desea usarlo$
, puede ajustar su código a una función y pasarlojQuery
como parámetro:fuente
if( jQuery )
arrojará una excepción sijQuery
se desconoce y que no va a funcionar.try {...}catch(e){...}
?jQuery().jquery
. Crea un objeto jQuery para nada. (comentario copiado de otra respuesta)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!
fuente
... solo porque este método no se ha mencionado hasta ahora: abra la consola y escriba:
Como @Juhana mencionado anteriormente
$().jquery
devolverá el número de versión.fuente
($ === jQuery)?$().jquery:'no jquery';
He encontrado que esta es la forma más corta y simple de verificar si jQuery está cargado:
Este método es utilizado por http://html5boilerplate.com y otros.
fuente
Mi preferencia es:
Resultado:
jQuery 1.8.0 cargado
fuente
let has$ = typeof jQuery === 'function'; console.log('jQuery' + (has$ ? ` version ${jQuery.fn.jquery} loaded.` : ' is not loaded.'));
En realidad, debe envolver esto en un bloque try / catch para IE:
fuente
typeof jQuery != 'undefined'
? ¿Es esto cierto para todos los IE o solo para los más antiguos?En una línea y el mínimo de pulsaciones de teclas (¡Uy!):
fuente
Vaya a la herramienta del desarrollador> consola y escriba uno de los siguientes comandos
jQuery.fn.jquery
console.log(jQuery().jquery);
fuente
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.
fuente
.....
fuente
$
.$
? No es exclusivo de jQuery.jQuery
no está cargado? (Lanzará unReferenceError
). La respuesta anterior es correcta, y es por eso que las personas votan negativamente por su respuesta.