深度克隆节点后,给定原始树中的一个节点,如何找到对应的克隆节点?

问题描述 投票:0回答:0

我正在构建一个模板引擎。作为缓存机制的一种形式,我想保留一个包含模板树的

DocumentFragment
节点,我将在其上调用
.cloneNode(true)
,然后将参数替换到克隆树中。我需要做的一件事是在将参数渲染到模板中时定位替换点。

但是有一个问题。如果我在原始树中定位替换点,这在克隆树中将毫无用处,因为节点标识在克隆后会有所不同。另一方面,遍历整棵克隆树似乎很浪费。

我想我可以为每个替换点计算一个子元素索引列表,然后使用这些索引遍历克隆树,但这似乎有点麻烦。理想情况下,我希望有一个

WeakMap
将选择的节点从原始树映射到它们的克隆节点。

有没有一种方便的方法来定位节点的克隆对应物,或者我是否必须使用索引列表?

javascript dom clonenode
© www.soinside.com 2019 - 2024. All rights reserved.