Come verificare quale versione di jQuery è caricata?


466

Come posso verificare quale versione di jQuery è caricata sul computer client? Il client potrebbe avere jQuery caricato ma non so come controllarlo. Se l'hanno caricato, come posso verificare la versione e il prefisso come:

$('.class')
JQuery('.class')

2
Il client potrebbe avere jQuery caricato se è stato incluso come file da scaricare. Qual è esattamente il problema?
Jared Farrish,

1
Non so per cosa l'OP ne abbia bisogno, ma se stai realizzando uno script o un plug-in che richiede jQuery potresti verificare e generare un errore se non è presente o una versione troppo vecchia.
JJJ,

Risposte:


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

29
Esistono 2 modi per verificare la versione jquery attualmente caricata: jQuery.fn.jquerye jQuery().jquery(shorthands:) $.fn.jquery $().jquery. Ne ho scritto in dettaglio con collegamenti al codice sorgente di jquery se desideri approfondire.
Uzbekjon,

3
versione ancora più semplice if (window.jQuery) { // jQuery is loaded => print the version alert(jQuery.fn.jquery); }
asherrard

6
Il controllo per indefinito dovrebbe essere!==
plankguy

1
Nota in minuscolo :)
Il pisello rosso

2
Non usare jQuery().jquery. Crea un oggetto jQuery per niente, basta usare quello che dice la risposta.

30

Puoi semplicemente verificare se l' jQueryoggetto esiste:

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

jQuery().jquery ha il numero di versione.

Per quanto riguarda il prefisso, jQuerydovrebbe sempre funzionare. Se si desidera utilizzare $è possibile racchiudere il codice in una funzione e passarlo jQuerycome parametro:

(function( $ ) {
    $( '.class' ).doSomething();  // works always
})( jQuery )

3
if( jQuery )L'un'eccezione se jQueryè sconosciuta e non funzionerà.
Darin Dimitrov,

Forse avvolgerlo dentro try {...}catch(e){...}?
Akash

2
Non usare jQuery().jquery. Crea un oggetto jQuery per niente. (commento copiato da un'altra risposta)
törzsmókus

19
$.fn.jquery
// If there is concern that there may be multiple implementations of `$` then:
jQuery.fn.jquery

Se ottieni un numero di versione, di solito come una stringa, allora jQuery viene caricato ed è la versione con cui stai lavorando. Se non caricato, dovresti tornare indietro undefinedo forse anche un errore.

Domanda piuttosto vecchia e ho visto alcune persone che hanno già menzionato la mia risposta nei commenti. Tuttavia, trovo che a volte grandi risposte che vengono lasciate come commenti possono passare inosservate; specialmente quando ci sono molti commenti a una risposta, potresti trovarti a scavare tra pile di loro alla ricerca di una gemma. Spero che questo aiuti qualcuno!


1
@Janar No, non è esattamente lo stesso. Contrariamente eccessivamente complicato, IMO.
Rockin4Life33,

18

... solo perché questo metodo non è stato menzionato finora - apri la console e digita:

$ === jQuery

Come sopra menzionato da @Juhana, $().jqueryverrà restituito il numero di versione.


qualcosa del genere($ === jQuery)?$().jquery:'no jquery';
UselesssCat

1
OP ha chiesto di verificare la versione caricata. Questo non risponde alla domanda.
Akira Yamamoto,

16

Ho trovato che questo è il modo più breve e semplice per verificare se jQuery è caricato:

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

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

Questo metodo è utilizzato da http://html5boilerplate.com e altri.


@AndreFigueiredo Ho modificato la risposta per includere come ottenere il numero di versione, dopo essermi accertato che jQuery sia caricato.
Markus Amalthea Magnuson,

5

La mia preferenza è:

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

Risultato:

jQuery 1.8.0 caricato


Ricevo: indefinito
Joe L.

Questo è un po 'meglio, ma la registrazione non è così utile quando si lavora su un'app. È meglio salvare prima una variabile. let has$ = typeof jQuery === 'function'; console.log('jQuery' + (has$ ? ` version ${jQuery.fn.jquery} loaded.` : ' is not loaded.'));

3

Dovresti effettivamente inserirlo in un blocco try / catch per 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 non gestisce typeof jQuery != 'undefined'? È vero per ogni IE o solo per quelli più vecchi?
JJJ,

Abbastanza sicuro è per le versioni legacy. Cosa c'è di più imbarazzante di un grosso errore JS che impedisce alla tua pagina di funzionare, indipendentemente dal fatto che sia colpa del browser;)
AlienWebguy

Questo mi ha davvero aiutato molto. Stavo lottando per ottenere il comportamento esatto su Firefox e IE per verificare se jQuery è caricato o meno utilizzando WatiN. Ora, con questa soluzione alternativa, sono molto felice. Grazie a te!
rahoolm,

2

In una riga e il minimo di sequenze di tasti (oops!):

alert($().jquery);

1

Vai allo strumento dello sviluppatore> console e scrivi uno dei seguenti comandi jQuery.fn.jquery console.log(jQuery().jquery);


0

Secondo il blog monster di Template , digitando, questi script di seguito ti daranno la versione del jquery nel sito che stai attraversando ora.

 1. console.log(jQuery.fn.jquery);
 2. console.log(jQuery().jquery);

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

.....


1
Alcune altre librerie usano $.
Jared Farrish,

2
E se stanno usando Prototype? O qualcos'altro che usa $? Non è univoco per jQuery.
JJJ,

E se jQuerynon fosse caricato? (Lancerà a ReferenceError). La risposta sopra è corretta, ed è per questo che le persone stanno votando in negativo la tua risposta.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.