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

时间:2013-05-28 06:28:22

标签: javascript jquery

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

我有以下代码:

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

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

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

safeFrag = document.createDocumentFragment()

显然文档为空。在第6249行将堆栈跟踪向上移至domManip,对象将作为this[ 0 ].ownerDocument传递,该值为空。

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

请参阅this jsFiddle,警报未弹出,这意味着之前javascript引擎卡在了该行上。

帮助表示赞赏。

1 个答案:

答案 0 :(得分:35)

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

如果要在某事物的开头添加div元素,则允许包含它的最高节点是body元素,因此请使用:

$(document.body).prepend

......而不是。