javascript - Uncaught Error : NOT_FOUND_ERR: DOM Exception 8 on insertBefore

标签 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 只是我想添加到表示的元素前面的片段标识符frag 是一个可靠的 html 片段,对 getElementById 的调用返回一个可靠的元素,即两者都不是字符串。为什么我在 insertBefore 上收到上述错误?

最佳答案

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

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

关于javascript - Uncaught Error : NOT_FOUND_ERR: DOM Exception 8 on insertBefore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15914288/

相关文章:

javascript - window.location 与 window.open 问题

android - DOM 或 SAX 解析示例

dom - ExtJS4:查找树节点的 DOM 元素

javascript - 将 ## 转换为数字正则表达式

javascript - 如何创建自动生成的备用表格行颜色?

javascript - 第二个 Stripe 结账按钮不起作用

javascript - getElementById 在 Safari 中返回 null 或 undefined

java - 使用 UTF-8 XML 文件进行 DOM 解析

javascript - 如何在ReactJS中获取没有正斜杠的路由名称

javascript - 计算属性未触发