function create(htmlStr) {
var frag = document.createDocumentFragment(),
temp = document.createElement('div');
temp.innerHTML = htmlStr;
while (temp.firstChild) {
frag.appendChild(temp.firstChild);
}
return frag;
}
function add(identifier, html){
var frag = create(html);
document.body.insertBefore(frag, document.getElementById(identifier));
}
identifier
是我在开发人员工具中验证的标记的字符串ID,html
只是我想要添加到所述identifier
表示的元素的片段。 frag
是一个bonefide html片段,对getElementById
的调用返回一个bonefide元素,即两者都不是字符串。为什么我在insertBefore
上收到上述错误?
答案 0 :(得分:3)
您的元素可能不是document.body
的直接子元素。试试这个 - >
function add(identifier, html){
var frag = create(html),
el = document.getElementById(identifier);
el.parentNode.insertBefore(frag, el);
}