2013-05-28 16 views
19

Podczas uruchamiania strony próbuję dodać element do DOM.Jquery Prepend: Nie można wywołać metody 'createDocumentFragment' o wartości zerowej

Mam następujący kod:

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

Przetestowałem to na FF21, Chrome27 i IE10. Wszystkie zwracają błąd wymieniony w tytule (dokładne sformułowanie pochodzi z debuggera Chrome).

debugowanie na jQuery 1.10.0.js, że wytropił problemu do linii 5998 gdzie

safeFrag = document.createDocumentFragment() 

Widocznie dokument jest null. Przechodząc do śledzenia stosu do domManip w linii 6249 obiekt jest przekazywany jako this[ 0 ].ownerDocument, który jest pusty.

Usunąłem javascript na stronie po prostu ładowanie jQuery i uruchamianie tego polecenia, a problem nadal występuje.

Zobacz this jsFiddle, alert nie jest wyświetlany, co oznacza, że ​​silnik javascript utknął na linii przed.

Pomoc doceniona.

+1

Dlaczego próbujesz przedłożyć dokument? Przygotuj do rzeczywistego węzła DOM, takiego jak document.body. Spróbuj też użyć cudzysłowów do wartości atrybutów – Ian

Odpowiedz

33

Nie ma sensu dodawanie elementu na początku obiektu document. To nie jest HTMLElementNode. O ile wiem, w ogóle nie możesz dać mu dodatkowych dzieci.

Jeśli chcesz dodać element div na początek coś, czym najwyższy węzeł, który może zawierać to element ciała, więc używać:

$(document.body).prepend 

... zamiast.

Powiązane problemy