如何正确地从DOM javascript中删除? 我在做什么 let test=将事件侦听器添加到c1元素的自定义js代码 创造 将测试附加到js 删除这是一个问题 向c2元素添加事件侦听器 删除。框6这是一个问题

如何正确地从DOM javascript中删除? 我在做什么 let test=将事件侦听器添加到c1元素的自定义js代码 创造 将测试附加到js 删除这是一个问题 向c2元素添加事件侦听器 删除。框6这是一个问题,javascript,Javascript,问题4 即使我删除了c1元素的自定义代码, c1元素仍然可以单击…它们的行为就像仍然存在一样。 问题6 这是真的从记忆中删除了…还是类似于问题4…意味着它在那里…只是看不见而已。如果它仍在内存中…如何删除它? 抬头 这是一个普遍存在的问题…不仅对于事件侦听器,而且对于console.log、警报等,一旦被删除,就不会发生任何与此相关的事情。所有这些都应该从内存中删除。 工作演示 让测试=` 让容器=document.getElementByIdc1 让clicked=container.g

问题4 即使我删除了c1元素的自定义代码, c1元素仍然可以单击…它们的行为就像仍然存在一样。

问题6 这是真的从记忆中删除了…还是类似于问题4…意味着它在那里…只是看不见而已。如果它仍在内存中…如何删除它? 抬头 这是一个普遍存在的问题…不仅对于事件侦听器,而且对于console.log、警报等,一旦被删除,就不会发生任何与此相关的事情。所有这些都应该从内存中删除。

工作演示 让测试=` 让容器=document.getElementByIdc1 让clicked=container.getelementsbyclassnameboxs; 对于let i=0;i.长度;i++{ 单击[i]。添加EventListener'click',b; } 功能b{ 如果此.classList.contains被选中{ this.classList.removeclicked; } else{this.classList.addclicked;} } `; //用js创建脚本标记 //并在其后面附加-test-var 让script=document.createElement'script'; script.type='text/javascript'; script.id='js'; script.text=测试; document.body.appendChildscript; //我删除了js //但是c1.box事件侦听器仍然连接到div? //如果我删除了js,它们就不应该是可点击的 //发生什么事了 让deleteScript=document.getElementById'js'; deleteScript.parentNode.removeChild deleteScript; //此代码将保留在这里 让container2=document.getElementByIdc2 单击2=container2.GetElementsByclassNameBox; 对于let i=0;i做不到。。。脚本标记在呈现脚本标记后立即求值。并且无法撤消或禁用。您需要重新创建元素或删除附加到DOM元素的事件侦听器


它被垃圾收集器从内存中删除,不再可以从某处引用。

您不能删除导致浏览器评估某些代码并期望其消失的脚本标记。 但是您可以使用removeEventListener来注销事件侦听器,
您还可以操作使用脚本标记声明的变量函数。

脚本由浏览器缓存。最好的办法是编写代码来抵消不再需要的代码行为。例如addEventListener vs removeEventListener,setTimeout vs ClearTimeout如果您想删除代码所做的事情,您需要以不同的方式编码,或者更确切地说,使用不同的方法。浏览器缓存脚本,即使被删除,它们也可用。所以基本上,如果我创建一个脚本,请设置一个时间限制为1小时的主函数。只要定时器在定时器启动后执行函数中的所有代码,它中的所有内容都会停止,如果我不想删除脚本,则将时间降低到1秒,然后删除,从而杀死函数中的所有内容?如果时间在我删除脚本之前达到10秒,则向定时器添加1小时