迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > JavaScript >

JavaScript 中克隆元素并更改其 ID

作者:迹忆客 最近更新:2022/12/14 浏览次数:

JavaScript 要克隆一个元素并更改其 id:

  1. 使用 cloneNode() 方法克隆元素。
  2. 在元素上设置不同的 id 属性。
  3. 例如,clone.id = 'another-id'

以下是本文示例的 HTML。

index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
  </head>

  <body>
    <div id="box">
      <p>Child 1</p>
      <p>Child 2</p>
    </div>

    <script src="index.js"></script>
  </body>
</html>

这是相关的 JavaScript 代码。

const box = document.getElementById('box');

// ✅ Clone node and its descendants
const clone = box.cloneNode(true);

// ✅ Change clone's id
clone.id = 'cloned-box';

// 👇️ Add clone to body
document.body.appendChild(clone);

我们使用 getElementById() 方法来选择我们想要克隆的元素。

我们在元素上调用了 cloneNode 方法。

cloneNode() 方法返回调用它的节点的副本。

该方法采用的唯一参数是节点的后代是否也应该被克隆。

如果设置为 false,则只会克隆节点,不包括子元素和文本节点。

我们将 clone 的 id 属性设置为 cloned-box 的值。

我们也可以使用 setAttribute 方法来获得相同的结果。

const box = document.getElementById('box');

// ✅ Clone node and its descendants
const clone = box.cloneNode(true);

// ✅ Change clone's id
clone.setAttribute('id', 'cloned-box');

// 👇️ Add clone to body
document.body.appendChild(clone);

setAttribute 方法有两个参数:

  • name - 要设置其值的属性的名称。
  • value - 分配给属性的值。

如果该属性已存在于元素上,则更新该值,否则添加具有指定名称和值的新属性。

最后一步是使用 appendChild 方法将元素添加到 DOM。

在示例中,我们在主体上调用了该方法,但是它可以在任何节点上调用。

appendChild 方法将一个节点添加到调用它的元素的子元素列表的末尾。

应该注意的是,cloneNode 方法不会复制使用 addEventListener() 方法添加的事件侦听器和分配给元素属性的事件,例如 box.onclick = function()

如果我使用示例中的代码加载页面,我可以看到 div 元素已被克隆并且其 id 已成功更改。

JavaScript 中克隆元素并更改其 ID

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便