2013-05-28 9 views
19

Sayfa başlangıcında DOM'a bir öğe eklemeye çalışıyorum. Ben FF21, Chrome27 ve IE10 bu test ettikJquery Prepend: 'createDocumentFragment' yönteminin çağrısı alınamıyor

$(document).ready(function() { 
    $(document).prepend("<div id=new_div style=z-index:1;></div>"); 
}); 

:

Aşağıdaki kod var. Hepsi başlığında belirtilen hatayı döndürür (tam metinler Chrome hata ayıklayıcıdır). jquery-1.10.0.js üzerinde

Hata ayıklama, ben

safeFrag = document.createDocumentFragment() 

Görünüşe belge boş olduğu 5998 satır sorunu buldum. Yığın izini 6249 satırında domManip konumuna getirerek, nesne boş olan this[ 0 ].ownerDocument olarak iletilir.

jQuery'yi yüklemek ve bu komutu çalıştırmak için sayfada javascript'i kaldırdım ve sorun devam ediyor.

Bkz. this jsFiddle, uyarı tetiklenmiyor, yani javascript motoru daha önce satırda sıkışmış.

Yardım edin.

+1

Neden belge almaya hazırlanıyorsunuz? Document.body gibi gerçek bir DOM düğümüne ekleyin. Ayrıca, özellik değerleriniz için teklifleri kullanmayı deneyin. – Ian

cevap

33

document nesnesinin başına bir öğe eklemeyi denemek mantıklı gelmiyor. Bir HTMLElementNode değil. Bildiğim kadarıyla, ona ek çocuk veremezsin. Eğer bir şeyin başlangıcına bir div öğesi eklemek istiyorsanız

, o zaman vücut elemanıdır içermesine izin verildiği en yüksek düğüm, böylece kullanın:

$(document.body).prepend 

... yerine.