未捕获错误:NOT_FOUND_ERR:insertBefore上的DOM异常8

时间:2013-04-09 23:21:35

标签: javascript dom

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上收到上述错误?

1 个答案:

答案 0 :(得分:3)

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

function add(identifier, html){
    var frag = create(html),
        el = document.getElementById(identifier);
    el.parentNode.insertBefore(frag, el);
}