2013-05-28 16 views
19

ページの起動時に、DOMに要素を追加しようとしています。私はFF21、Chrome27とIE10でこれをテストしてみたJquery Prepend:nullのメソッド 'createDocumentFragment'を呼び出せません

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

は、私は、次のコードを持っています。それらはすべてタイトルに記載されたエラーを返します(正確な言葉遣いはChromeデバッガからのものです)。 jqueryの-1.10.0.js上

デバッグは、私が

safeFrag = document.createDocumentFragment() 

はどうやらドキュメントがnullのところ5998行目に問題を突き止め。行6249でスタックトレースをdomManipに移動すると、オブジェクトはthis[ 0 ].ownerDocumentとして渡されます。これはnullです。

私はjQueryをロードしてこのコマンドを実行するだけで、ページ上でjavascriptを削除しても問題は解決しません。

this jsFiddleを参照してください。アラートはポップアップしません。つまり、javascriptエンジンが以前にその行にスタックしていたことを意味します。

ヘルプありがとうございます。

+1

なぜドキュメントの前に追加しようとしていますか? document.bodyのような実際のDOMノードの前に追加します。また、属性値に引用符を使用してみてください – Ian

答えて

33

documentオブジェクトの先頭に要素を追加しようとすると意味がありません。これはHTMLElementNodeではありません。私が知っている限り、あなたはそれをさらに子供に与えることはできません。

あなたが何かのスタートにdiv要素を追加したい場合は、それを含むように許可されている最上位ノードがbody要素であるので、使用します。

$(document.body).prepend 

を...代わりに。

関連する問題