Jquery Prepend:无法调用null的方法'createDocumentFragment'

JNF*_*JNF 19 javascript jquery

在页面启动期间,我正在尝试向DOM添加元素.

我有以下代码:

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

我在FF21,Chrome27和IE10上测试了这个.它们都返回标题中提到的错误(确切的措辞来自Chrome调试器).

在jquery-1.10.0.js上调试,我将问题追溯到5998行

safeFrag = document.createDocumentFragment()
Run Code Online (Sandbox Code Playgroud)

显然文档为空.将堆栈跟踪向上移动到domManip第6249行,对象将作为this[ 0 ].ownerDocumentnull 传递.

我已经剥离了页面上的javascript,只是加载jQuery并运行此命令,问题仍然存在.

看到这个jsFiddle,警报没有弹出,这意味着之前javascript引擎卡在了线上.

帮助赞赏.

Que*_*tin 35

尝试将元素添加到document对象的开头是没有意义的.它不是HTMLElementNode.据我所知,你根本不能给它额外的孩子.

如果要将div元素添加到某个东西的开头,那么允许包含它的最高节点是body元素,因此使用:

$(document.body).prepend
Run Code Online (Sandbox Code Playgroud)

......而是.