我有一个JS创建的文本节点var node = document.createTextNode(null)
,我将自定义事件绑定到:
node.addEventListener('customEvent', function(){
console.log('hi');
}, false);
node.dispatch('customEvent');
一旦完成,我想干净地删除节点+事件监听器。
阅读here最简单的方法(不必保留对回调的引用,因为我有几个),就是删除节点本身。
为此,该方法为node.parentNode.removeChild(node);
。
很好,但就我而言,node.parentNode
是null
。
我该怎么办?
我尝试了document.removeChild(node);
因为我认为实际的父级是document
,但我得到了:Uncaught DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.
答案 0 :(得分:0)
如果您已创建节点但从未将其附加到文档,则释放它及其引用的内容(其事件处理程序)所需的全部内容是释放对它的所有引用。在您的情况下,如果node
是引用它的唯一内容,那么:
node = null; // or undefined, or 42, doesn't matter