1
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只是我想要添加到由所述 表示的元素之前的片段identifierfrag是一个bonefide html 片段,并且调用getElementById返回一个bonefide 元素,即两者都不是字符串。为什么我会收到上述错误insertBefore

4

1 回答 1

3

您的元素可能不是document.body. 试试这个->

function add(identifier, html){
    var frag = create(html),
        el = document.getElementById(identifier);
    el.parentNode.insertBefore(frag, el);
}
于 2013-04-09T23:27:58.520 回答