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
上出现上述错误? 最佳答案
您的元素可能不是document.body
的直接子代。试试这个->
function add(identifier, html){
var frag = create(html),
el = document.getElementById(identifier);
el.parentNode.insertBefore(frag, el);
}