Bagaimana cara memeriksa versi jQuery apa yang dimuat?


466

Bagaimana cara memeriksa versi jQuery mana yang dimuat pada mesin klien? Klien mungkin memiliki jQuery yang dimuat tetapi saya tidak tahu bagaimana memeriksanya. Jika sudah dimuat bagaimana cara memeriksa versi dan awalannya seperti:

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

2
Klien mungkin memiliki jQuery yang dimuat jika Anda memasukkannya sebagai file untuk diunduh. Apa masalahnya, tepatnya?
Jared Farrish

1
Entah untuk apa OP membutuhkannya, tetapi jika Anda membuat skrip atau plugin yang memerlukan jQuery, Anda dapat memeriksa dan melempar kesalahan jika tidak ada atau versi yang terlalu lama.
JJJ

Jawaban:


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

29
Ada 2 cara untuk memeriksa versi jquery yang saat ini dimuat: jQuery.fn.jquerydan jQuery().jquery(singkatan:) $.fn.jquery $().jquery. Saya menulis tentang hal ini secara detail dengan tautan ke kode sumber jquery jika Anda ingin menggali lebih dalam.
Uzbekjon

3
versi yang lebih sederhana if (window.jQuery) { // jQuery is loaded => print the version alert(jQuery.fn.jquery); }
asherrard

6
Cek untuk undefined harus!==
plankguy

1
Catatan huruf kecil :)
Kacang Merah

2
Jangan gunakan jQuery().jquery. Itu menciptakan objek jQuery tanpa alasan, cukup gunakan apa yang dikatakan jawabannya.

30

Anda bisa memeriksa apakah jQueryobjek itu ada:

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

jQuery().jquery memiliki nomor versi.

Sedangkan untuk awalan, jQueryharus selalu berfungsi. Jika Anda ingin menggunakan, $Anda dapat membungkus kode Anda ke suatu fungsi dan meneruskannya jQuerysebagai parameter:

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

3
The if( jQuery )akan melempar perkecualian jika jQuerytidak diketahui dan tidak akan bekerja.
Darin Dimitrov

Mungkin membungkusnya try {...}catch(e){...}?
Akash

2
Jangan gunakan jQuery().jquery. Ini menciptakan objek jQuery tanpa biaya. (menyalin komentar dari jawaban lain)
törzsmókus

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

Jika Anda mendapatkan kembali nomor versi - biasanya sebagai string - maka jQuery dimuat dan itulah versi yang Anda gunakan. Jika tidak dimuat maka Anda harus kembali undefinedatau mungkin bahkan kesalahan.

Pertanyaan yang cukup lama dan saya telah melihat beberapa orang yang telah menyebutkan jawaban saya dalam komentar. Namun, saya menemukan bahwa kadang-kadang jawaban hebat yang ditinggalkan sebagai komentar dapat diabaikan; terutama ketika ada banyak komentar untuk jawaban Anda mungkin menemukan diri Anda menggali tumpukan mereka mencari permata. Semoga ini bisa membantu seseorang!


1
@ Jan Tidak, sama sekali tidak sama. Sebaliknya, IMO sangat rumit.
Rockin4Life33

18

... hanya karena metode ini belum disebutkan sejauh ini - buka konsol dan ketik:

$ === jQuery

Seperti @Juhana yang disebutkan di atas $().jqueryakan mengembalikan nomor versi.


sesuatu seperti($ === jQuery)?$().jquery:'no jquery';
UselesssCat

1
OP diminta untuk memeriksa versi yang dimuat. Ini tidak menjawab pertanyaan.
Akira Yamamoto

16

Saya telah menemukan ini sebagai cara terpendek dan paling sederhana untuk memeriksa apakah jQuery dimuat:

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

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

Metode ini digunakan oleh http://html5boilerplate.com dan lainnya.


@AndreFigueiredo Saya mengedit jawaban untuk memasukkan cara mendapatkan nomor versi, setelah memastikan jQuery dimuat.
Markus Amalthea Magnuson

5

Preferensi saya adalah:

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

Hasil:

jQuery 1.8.0 dimuat


Saya mendapatkan: tidak terdefinisi
Joe L.

Ini sedikit lebih baik, tetapi pencatatan tidak begitu berguna saat mengerjakan suatu aplikasi. Anda lebih baik menyimpan variabel terlebih dahulu. let has$ = typeof jQuery === 'function'; console.log('jQuery' + (has$ ? ` version ${jQuery.fn.jquery} loaded.` : ' is not loaded.'));

3

Anda sebenarnya harus membungkus ini dalam blok coba / tangkap untuk 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 tidak menangani typeof jQuery != 'undefined'? Apakah ini benar untuk setiap IE atau hanya yang lama?
JJJ

Cukup yakin itu untuk versi lama. Masih apa yang lebih memalukan daripada kesalahan JS besar yang mencegah halaman Anda bekerja, terlepas dari apakah itu kesalahan browser;)
AlienWebguy

Ini benar-benar banyak membantu saya. Saya berjuang untuk mendapatkan perilaku yang tepat di Firefox dan IE untuk memeriksa apakah jQuery dimuat atau tidak menggunakan WatiN. Sekarang dengan solusi ini, saya sangat senang. Terima kasih untukmu
rahoolm

2

Dalam satu baris dan minimum penekanan tombol (oops!):

alert($().jquery);

1

Buka konsol Alat> pengembang dan tulis salah satu dari perintah berikut jQuery.fn.jquery console.log(jQuery().jquery);


0

Sesuai template monster blog , mengetik, skrip di bawah ini akan memberi Anda versi jquery di situs yang Anda lintasi sekarang.

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

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

.....


1
Beberapa perpustakaan lain menggunakan $.
Jared Farrish

2
Bagaimana jika mereka menggunakan Prototipe? Atau apa pun yang menggunakan $? Itu tidak unik untuk jQuery.
JJJ

Bagaimana jika jQuerytidak dimuat? (Ini akan melempar ReferenceError). Jawaban di atas benar, dan itulah sebabnya orang-orang memilih Anda untuk memilih.
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.