【发布时间】:2017-07-11 00:01:32
【问题描述】:
在我正在编写的网络应用程序中,我收到此错误:
HierarchyRequestError: Node cannot be inserted at the specified point in the hierarchy
当我 appendChild() 一个节点到 DOM 中的另一个点时会发生这种情况。
我很难弄清楚这一点。虽然我有一个可重现的案例,但对我来说它为什么会发生在这里没有意义。如果我从浏览器开发工具中执行完全相同的操作,它运行良好。但是,当代码从 JavaScript 文件执行时,会遇到错误。
在线搜索发现其他人有类似问题但没有解决方案。你会说什么?
谢谢! :)
更新:抱歉之前没写代码,我写的地方关门了。
导致错误的确切行如下。如果我将其注释掉,代码运行良好:
document.getElementById(creature_name).appendChild(creature_array[nearestNeighbor]);
// creature_name is the ID of an SVG <g> element. creature_array[nearestNeighbor] is another SVG element, which should get moved to within the <g>.
我已手动将同一个孩子移动到层次结构的同一部分。我已经使用调试器和 DOM 检查器进行了调查,但无法找到问题的原因。
更多代码会有帮助吗?这是一个开源项目,所以我可以尽可能多地分享。这是我在这里的第一个问题,所以请原谅我的新手错误!
更新 2:对于以后遇到此问题的任何人,事实证明,在我的情况下,我阻止了节点尝试追加自身,但没有阻止节点尝试将其父节点追加为子节点,这导致错误。 (尝试将节点附加到自身也会失败。)
【问题讨论】:
-
这两个节点是什么,它们的关系是什么?请提供minimal reproducible example,否则我们无法真正帮助您。
-
节点在哪里? DOM 中的点在哪里?一个代码示例将不胜感激。
-
你能展示可重现的案例吗?没有一些代码很难做出猜测。
-
阅读人们为您提供的有关最小示例的链接。我们无法从您发布的内容中重现您的问题。
标签: javascript dom hierarchy appendchild