Wie überprüfe ich, welche Version von jQuery geladen ist?

466

Wie überprüfe ich, welche Version von jQuery auf dem Clientcomputer geladen ist? Auf dem Client ist möglicherweise jQuery geladen, aber ich weiß nicht, wie ich das überprüfen soll. Wenn sie es geladen haben, wie überprüfe ich die Version und das Präfix wie:

$('.class')
JQuery('.class')
Luke101
quelle
2
Auf dem Client ist möglicherweise jQuery geladen, wenn Sie es als herunterzuladende Datei hinzugefügt haben. Was genau ist das Problem?
Jared Farrish
1
Keine Ahnung, wofür das OP es benötigt, aber wenn Sie ein Skript oder Plugin erstellen, für das jQuery erforderlich ist, können Sie einen Fehler überprüfen und auslösen, wenn er nicht vorhanden ist oder eine zu alte Version.
JJJ

Antworten:

900
if (typeof jQuery != 'undefined') {  
    // jQuery is loaded => print the version
    alert(jQuery.fn.jquery);
}
Darin Dimitrov
quelle
29
Es gibt zwei Möglichkeiten, die aktuell geladene jquery-Version zu überprüfen: jQuery.fn.jqueryund jQuery().jquery(Kurzschrift :) $.fn.jquery $().jquery. Ich habe ausführlich darüber mit Links zu jquery-Quellcode geschrieben, wenn Sie tiefer gehen möchten.
Usbekjon
3
noch einfachere Version if (window.jQuery) { // jQuery is loaded => print the version alert(jQuery.fn.jquery); }
Asherrard
6
Die Prüfung auf undefiniert sollte sein!==
plankguy
1
Beachten Sie Kleinbuchstaben :)
Die rote Erbse
2
Nicht benutzen jQuery().jquery. Es erstellt ein jQuery-Objekt für nichts. Verwenden Sie einfach die Antwort.
30

Sie können einfach überprüfen, ob das jQueryObjekt vorhanden ist:

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

jQuery().jquery hat die Versionsnummer.

Was das Präfix betrifft, jQuerysollte es immer funktionieren. Wenn Sie verwenden möchten, können $Sie Ihren Code in eine Funktion einschließen jQueryund als Parameter an diese übergeben:

(function( $ ) {
    $( '.class' ).doSomething();  // works always
})( jQuery )
JJJ
quelle
3
Das if( jQuery )wird eine Ausnahme auslösen, wenn dies jQueryunbekannt ist und es nicht funktioniert.
Darin Dimitrov
Vielleicht einpacken try {...}catch(e){...}?
Akash
2
Nicht benutzen jQuery().jquery. Es erstellt ein jQuery-Objekt für nichts. (kopierter Kommentar von einer anderen Antwort)
törzsmókus
19
$.fn.jquery
// If there is concern that there may be multiple implementations of `$` then:
jQuery.fn.jquery

Wenn Sie eine Versionsnummer zurückerhalten - normalerweise als Zeichenfolge -, wird jQuery geladen und mit dieser Version arbeiten Sie. Wenn nicht geladen, sollten Sie zurück undefinedoder vielleicht sogar einen Fehler bekommen.

Ziemlich alte Frage und ich habe ein paar Leute gesehen, die meine Antwort bereits in Kommentaren erwähnt haben. Ich finde jedoch, dass manchmal großartige Antworten, die als Kommentare hinterlassen werden, unbemerkt bleiben können. Besonders wenn es viele Kommentare zu einer Antwort gibt, kann es sein, dass Sie in Haufen von ihnen nach einem Edelstein suchen. Hoffentlich hilft das jemandem!

Rockin4Life33
quelle
1
@ Janar Nein, es ist überhaupt nicht genau das gleiche. Im Gegensatz dazu zu kompliziert, IMO.
Rockin4Life33
18

… Nur weil diese Methode bisher nicht erwähnt wurde - öffnen Sie die Konsole und geben Sie Folgendes ein:

$ === jQuery

Wie oben erwähnt, gibt @Juhana $().jquerydie Versionsnummer zurück.

ptim
quelle
so etwas wie($ === jQuery)?$().jquery:'no jquery';
UselesssCat
1
OP hat gebeten, die geladene Version zu überprüfen. Dies beantwortet die Frage nicht.
Akira Yamamoto
16

Ich habe festgestellt, dass dies der kürzeste und einfachste Weg ist, um zu überprüfen, ob jQuery geladen ist:

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

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

Diese Methode wird von http://html5boilerplate.com und anderen verwendet.

Markus Amalthea Magnuson
quelle
@AndreFigueiredo Ich habe die Antwort so bearbeitet, dass sie enthält, wie die Versionsnummer abgerufen wird, nachdem sichergestellt wurde, dass jQuery geladen ist.
Markus Amalthea Magnuson
5

Meine Präferenz ist:

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

Ergebnis:

jQuery 1.8.0 geladen

sshel207
quelle
Ich bekomme: undefiniert
Joe L.
Dies ist etwas besser, aber die Protokollierung ist bei der Arbeit an einer App nicht so nützlich. Sie sollten zuerst eine Variable speichern. let has$ = typeof jQuery === 'function'; console.log('jQuery' + (has$ ? ` version ${jQuery.fn.jquery} loaded.` : ' is not loaded.'));
3

Sie sollten dies tatsächlich in einen Try / Catch-Block für IE einbinden:

// 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
quelle
IE nicht handhaben typeof jQuery != 'undefined'? Gilt das für jeden IE oder nur für die älteren?
JJJ
Ziemlich sicher, dass es für die Legacy-Versionen ist. Was ist noch peinlicher als ein großer alter JS-Fehler, der verhindert, dass Ihre Seite funktioniert, unabhängig davon, ob der Browser daran schuld ist;)
AlienWebguy
Das hat mir sehr geholfen. Ich hatte Probleme, das genaue Verhalten in Firefox und IE zu ermitteln, um zu überprüfen, ob jQuery mit WatiN geladen ist oder nicht. Jetzt mit dieser Problemumgehung bin ich sehr glücklich. Danke dir!
Rahoolm
2

In einer Zeile und dem Minimum an Tastenanschlägen (oops!):

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

Gehen Sie zur Entwicklertool> Konsole und schreiben Sie einen der folgenden Befehle jQuery.fn.jquery console.log(jQuery().jquery);

Suman Koirala
quelle
0

Wie pro Template Monster Blog , schreiben, werden diese unter Skripte geben Sie die Version des jquery in der Website , die Sie jetzt durchqueren.

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

..... .....

Genesis
quelle
1
Einige andere Bibliotheken verwenden $.
Jared Farrish
2
Was ist, wenn sie Prototype verwenden? Oder irgendetwas anderes, das verwendet $? Es ist nicht nur jQuery vorbehalten.
JJJ
Was ist, wenn jQuerynicht geladen? (Es wird ein werfen ReferenceError). Die obige Antwort ist richtig, und deshalb stimmen die Leute Ihre Antwort ab.