You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP DOMDocument调用replaceChild替换节点后原节点变量仍返回旧值问题

问题原因分析
  • 核心原因是PHP的DOMNode对象为引用类型,你最初获取的$contentEditable变量存储的是原始旧节点的内存引用,和后续插入的新克隆节点是完全独立的两个对象。
  • 调用replaceChild方法的操作本质是:把旧节点从当前DOM树中移除,再把新的克隆节点挂载到旧节点原本的父节点下,这个操作不会修改$contentEditable变量本身的指向,它仍然指向已经脱离DOM树的旧节点,所以读取它的nodeValue自然还是旧值。
  • saveHTMLFile写入文件是基于当前最新的DOM树状态(已经插入新节点),所以文件内容是更新后的,和已脱离DOM树的旧节点变量的状态无关。
  • 如果需要获取更新后的节点内容,应该在replaceChild操作完成后,重新通过getElementById('editable')查询DOM树拿到新节点的引用,再读取对应的属性即可。

内容的提问来源于stack exchange,提问作者Naeco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 14:54:06