在页面启动期间,我正在尝试向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引擎卡在了该行上。
帮助表示赞赏。
答案 0 :(得分:35)
尝试将一个元素添加到document
对象的开头是没有意义的。它不是HTMLElementNode。据我所知,你根本不能给它额外的孩子。
如果要在某事物的开头添加div元素,则允许包含它的最高节点是body元素,因此请使用:
$(document.body).prepend
......而不是。