究竟是什么导致"HIERARCHY_REQUEST_ERR:DOM例外3" - 错误?

Jul*_*mer 184 javascript jquery domexception

它与jQuery有何关系?我知道该库在内部使用本机javascript函数,但是只要出现这样的问题,它究竟在尝试做什么?

Kel*_*ton 225

这意味着您已尝试将DOM节点插入DOM树中无法进入的位置.我看到的最常见的地方是Safari,它不允许以下内容:

document.appendChild(document.createElement('div'));
Run Code Online (Sandbox Code Playgroud)

一般来说,这只是一个错误,实际上是这样的:

document.body.appendChild(document.createElement('div'));
Run Code Online (Sandbox Code Playgroud)

在野外看到的其他原因(从评论中总结):

  • 您正在尝试将节点附加到自身
  • 您正在尝试将null附加到节点
  • 您正在尝试将节点附加到文本节点.
  • 您的HTML无效(例如,无法关闭目标节点)
  • 浏览器认为您尝试附加的HTML是XML(通过添加<!doctype html>到您注入的HTML或通过XHR获取时指定内容类型来修复)

  • 当您尝试将节点附加到自身时,也会发生此错误.我自己碰到了这个:-) (49认同)
  • 我刚刚尝试将一个null添加到一个元素(和一个完全不相关的提示 - 总是确保你的函数返回你写的东西返回:P) (5认同)

Dav*_*son 5

如果由于jquery ajax调用$ .ajax而收到此错误

然后,您可能需要指定从服务器返回的数据类型。我已经使用此简单属性修复了很多响应。

$.ajax({
    url: "URL_HERE",
    dataType: "html",
    success: function(response) {
        $('#ELEMENT').html(response);
    }
});
Run Code Online (Sandbox Code Playgroud)