Hangi jQuery sürümünün yüklü olduğunu nasıl kontrol edebilirim?


466

İstemci makineye hangi jQuery sürümünün yüklendiğini nasıl kontrol ederim? Istemci yüklü jQuery olabilir ama nasıl kontrol bilmiyorum. Yüklendiyse, sürümü ve öneki nasıl kontrol ederim:

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

2
İndirilecek bir dosya olarak eklediyseniz, istemciye jQuery yüklenmiş olabilir. Sorun tam olarak nedir?
Jared Farrish

1
OP'nin neye ihtiyacı olduğunu bilmeyin, ancak jQuery gerektiren bir komut dosyası veya eklenti oluşturuyorsanız, orada veya çok eski bir sürüm değilse bir hata kontrol edebilir ve atabilirsiniz.
JJJ

Yanıtlar:


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

29
Şu anda yüklü jquery sürümünü kontrol etmenin 2 yolu vardır: jQuery.fn.jqueryve jQuery().jquery(kısayollar:) $.fn.jquery $().jquery. Daha derinlemesine incelemek isterseniz jquery kaynak koduna bağlantılarla ayrıntılı olarak yazdım .
Özbekjon

3
daha basit versiyon if (window.jQuery) { // jQuery is loaded => print the version alert(jQuery.fn.jquery); }
asherrard

6
!==
Undefined

1
Not küçük harf :)
Kızıl Bezelye

2
Kullanma jQuery().jquery. Hiçbir şey için bir jQuery nesnesi oluşturur, sadece cevabın söylediklerini kullanın.

30

Sadece jQuerynesnenin var olup olmadığını kontrol edebilirsiniz :

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

jQuery().jquery sürüm numarası var.

Önek gelince, jQueryher zaman çalışmalıdır. Kullanmak isterseniz $bir işleve kodunuzu sarın ve geçebildiği jQueryparametre olarak kendisine:

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

3
if( jQuery )Eğer bir istisna durumu jQuerybilinmemektedir ve o işe yaramaz.
Darin Dimitrov

Belki içine sarın try {...}catch(e){...}?
Akash

2
Kullanma jQuery().jquery. Hiçbir şey için bir jQuery nesnesi oluşturur. (başka bir cevaptan yorum kopyalandı)
törzsmókus

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

Bir sürüm numarasını - genellikle dize olarak - alırsanız, jQuery yüklenir ve çalıştığınız sürüm budur. Yüklü değilse, geri dönmeniz undefinedveya hatta bir hata almanız gerekir .

Oldukça eski bir soru ve yorumlarda cevabımı daha önce bahsetmiş birkaç kişi gördüm. Ancak, bazen yorum olarak bırakılan harika cevapların fark edilmeyebileceğini düşünüyorum; özellikle bir cevaba birçok yorum geldiğinde kendinizi bir mücevher arayan yığınlarını kazarken bulabilirsiniz. Umarım bu birine yardımcı olur!


1
@ Ocak Hayır, hiç de aynı değil. Buna karşılık aşırı karmaşık, IMO.
Rockin4Life33

18

… Bu yönteme henüz değinilmediğinden - konsolu açın ve şunu yazın:

$ === jQuery

@Juhana yukarıda belirtildiği gibi $().jquerysürüm numarasını döndürür.


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

1
OP yüklenen sürümü kontrol etmeyi istedi. Bu soruya cevap vermiyor.
Akira Yamamoto

16

Bu jQuery yüklü olup olmadığını kontrol etmek için en kısa ve en basit yolu olarak bulduk:

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

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

Bu yöntem http://html5boilerplate.com ve diğerleri tarafından kullanılır .


@AndreFigueiredo Cevabı, jQuery'nin yüklendiğinden emin olduktan sonra sürüm numarasının nasıl alınacağını içerecek şekilde düzenledim.
Markus Amalthea Magnuson

5

Benim tercihim:

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

Sonuç:

jQuery 1.8.0 yüklendi


Anladım: undefined
Joe L.

Bu biraz daha iyi, ancak bir uygulama üzerinde çalışırken günlüğe kaydetme o kadar kullanışlı değil. Önce bir değişkeni kaydetmeniz daha iyi olur. let has$ = typeof jQuery === 'function'; console.log('jQuery' + (has$ ? ` version ${jQuery.fn.jquery} loaded.` : ' is not loaded.'));

3

Aslında bunu IE için bir try / catch bloğuna sarmalısınız:

// 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 işlemiyor typeof jQuery != 'undefined'mu? Bu her IE için mi yoksa sadece daha büyük olanlar için mi geçerli?
JJJ

Eski sürümler için oldukça emin. Yine de, tarayıcının hatası olup olmadığına bakılmaksızın, sayfanızın çalışmasını engelleyen büyük bir ol 'JS hatasından daha utanç verici olan;)
AlienWebguy

Bu bana çok yardımcı oldu. JQuery yüklü olup olmadığını WatiN kullanarak kontrol etmek için Firefox ve IE arasında tam davranış elde etmek için mücadele ediyordu. Şimdi bu geçici çözümle çok mutluyum. Sayende!
rahoolm

2

Bir satırda ve minimum tuş vuruşlarında (ayy!):

alert($().jquery);

1

Geliştiricinin Araç> konsoluna gidin ve aşağıdaki komutlardan birini yazın jQuery.fn.jquery console.log(jQuery().jquery);


0

Gereğince Şablon canavar blogunda , yazarak, komut Aşağıda, bu sana şu an iki yönde hareket sitedeki jquery sürümünü verecektir.

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

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

.....


1
Diğer bazı kütüphaneler kullanır $.
Jared Farrish

2
Ya Prototip kullanıyorlarsa? Veya kullanan başka bir şey $? JQuery için benzersiz değildir.
JJJ

jQueryYüklü değilse ne olur ? (A atar ReferenceError). Yukarıdaki cevap doğrudur ve bu yüzden insanlar cevabınızı aşağıya oylamaktadır.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.