原生js,如何快速实现dom的深克隆

62 阅读1分钟

如何快速实现dom的深克隆

背景

最近在做项目的时候,需要用到原生dom操作,此时此刻原生dom的记忆开始攻击我的大脑,我是谁,我在做什么,忘的干干净净。回顾往昔,在jq的时代,被dom统治的恐惧。好了废话不多说,直接上干货。

const deepCloneELement = (
  dom: HTMLElement | string
): HTMLElement => {
  let div: HTMLDivElement | null =
    document.createElement("div");
  const str =
    typeof dom == "string"
      ? dom
      : dom.outerHTML;
  div.innerHTML = str;
  const returnDom = div.childNodes[0];
  // console.log(str, "div");
  div = null; // 通过标记法进行垃圾回收
  return returnDom as HTMLElement;
};