2013-08-27 11 views
33

Firefox (23.0.1) ve jQuery Mobile (1.3.2) kullanırken, aşağıdaki uyarıyı şu kodumdan ediniyorum: Empty string passed to getElementById(). İleti konsolda görüntülenir (Araçlar> Web Geliştirici> Web Konsolu). Bu uyarıyı ortadan kaldırmak istiyorum."Boş Dize getElementById() için geçirilen" jQuery Mobile ile uyarı nasıl kaldırılır?

Pek çok insanın, benzer sorular sorduğunu gördüm, en önemlisi: Best way to locate source of Warning: Empty string passed to getElementById() Yanıtlar, tutarlı bir şekilde '#' kullanımını işaret ediyor ve kullanıcının hatalı olduğunu ima ediyor.

Çıplak minimum geçerli kod olduğunu düşündüğüm şeyi üretmeye çalıştım ve bu uyarının hala sergilediğini gördüm. Diğer yayınlardan, benim hatam olan kodumun olduğunu düşünüyorum. Bu sorunu nasıl çözebilirim?

diğer kullanıcıların yorum göre

, bu uyarı Chrome'da (versiyon 29.0.1547.57) önceden

Teşekkür görünmüyor! Bu sorunu yeniden üretir

Asgari geçerli kod:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> 
<html> 
<head> 
    <title>Test</title> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" href="css/jquery.mobile-1.3.2.css" /> 
    <script src="js/jquery-1.9.1.js"></script> 
    <script src="js/jquery.mobile-1.3.2.js"></script> 
</head> 

<body> 
<div data-role="page" id="TestPage"> 

    <div data-role="content" id="TestContent"> 

    <p>This is a test</p> 

    </div> 

</div> 

</body> 
</html> 
+0

Bu kodun nesi yanlış? – XaxD

+0

Firefox konsolunda "boş dizge getElementById() öğesine iletilen uyarı iletiliyor. –

+1

Bu kodda 'getElementById()' adı verilir? – XaxD

cevap

-1

sizin jsfiddle geçiyor sonra hala işlev document.getElementById() nerede çağrıldığını alamadım. Bu problemle yüz yüze geldim, fakat jquery-mobile'i kullandığınız için selektör olarak $ (# id) kullanması daha iyi olur, sadece bu referans document.getElementById() veya $ ('# id') çağrısının daha önce çağrıldığını kontrol edin. DOM hazır ..

+0

Düşünceleriniz için teşekkürler, ancak Ryan'a yaptığım görüşüme göre, kullanımda hiç seçici yok. Bu uyarının, jquery mobile'da bir hata olarak görülmesi gerektiği sonucuna vardım. –

2

Silinmiş bir cevapta ve yorumlarda belirtildiği gibi, bu a bug in Mobile jQuery idi ve şimdi düzeltildi. 1.3.2 vs 1.4.5 (mevcut versiyon) davranışını karşılaştırın:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> 
<html> 
<head> 
    <title>Test</title> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <!--link rel="stylesheet" href="https://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" /--> 
    <link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" /> 
    <script src="https://code.jquery.com/jquery-1.9.1.js"></script> 
    <script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.js"></script> 
    <!--script src="https://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.js"></script--> 
</head> 

<body> 
<div data-role="page" id="TestPage"> 

    <div data-role="content" id="TestContent"> 

    <p>This is a test</p> 

    </div> 

</div> 

</body> 
</html>