我需要创建一个独立于我的主文档的临时 DOM 元素。我通过使用主文档创建一个元素但不将其附加到树中来完成此操作。
Element temporaryParentElement = document.createElement(PERMISSIONSET);
它用于在对话框中构建表格。对话框关闭后,我不再需要此元素,因此我尝试将其删除:
document.removeChild(temporaryParentElement);
这导致了异常:
org.w3c.dom.DOMException: NOT_FOUND_ERR: An attempt is made to reference a node in a context where it does not exist.
如果我理解正确的话,如果创建的节点不是树的一部分,则无法删除它。我需要将其附加到树中然后调用删除方法吗?或者垃圾收集器是否关心这个元素?
最佳答案
元素创建与将其附加或删除到现有树不同。您使用该 document
引用来创建元素,然后将其附加到其他某个元素。您可以使用该元素的引用将其删除。
方法removeChild
从树中删除之前添加的元素(使用appendChild
或在读取文档时解析)。
您必须找到代表该元素父级的元素才能将其删除。假设父级是 dialog
。您将使用:
dialog.removeChild(temporaryParentElement);
关于java - 从文档创建但未附加的元素 : need to remove it explicitly?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24017498/