RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1189755
Accepted
Marina
Marina
Asked:2021-10-13 19:49:36 +0000 UTC2021-10-13 19:49:36 +0000 UTC 2021-10-13 19:49:36 +0000 UTC

将新元素附加到不同的块

  • 772

为什么新的块元素附加到第二个div?并且从一开始就消失了。我知道,当我们创建一个元素时,实际上 DOM 中会出现一个新对象,并且会附加一个指向该对象的链接。如果我们将新元素重新附加到另一个 div,为什么它会丢失?可以从不同的地方引用同一个对象。或者它是附加的功能?谢谢!

<div class="box-1"></div>
<div class="box-2"></div>

let block = document.createElement('div');
block.classList.add('new');

document.querySelector('.box-1').append(block);
document.querySelector('.box-2').append(block);
javascript
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    OPTIMUS PRIME
    2021-10-13T20:21:05Z2021-10-13T20:21:05Z

    这就是 append 的工作方式,它不会复制传递的元素,而是传输它。在您的示例中,该块首先从 dom 转移到 box-1,然后从那里转移到 box-2。

    要在每个块中插入一个元素,您需要每次都创建该元素。为方便起见,您可以将其包装在一个函数中。

    first(".box-1").append( new_block() );
    first(".box-2").append( new_block() );
    
    function new_block() {
      // При каждом вызове создает и возвращает новый блок
      let block = document.createElement("div");
      block.className = "new";
    
      return block;
    }
    
    function first(selector) {
      return document.querySelector(selector);
    }
    .new {
      width: 60px;
      height: 60px;
      margin: 4px;
      background-color: #a22;
    }
    <div class="box-1"></div>
    <div class="box-2"></div>

    还有一个用于复制元素的 cloneNode() 方法:

    let block = document.createElement("div");
    block.className = "new";
    
    first(".box-1").append( block.cloneNode() );
    first(".box-2").append( block.cloneNode() );
    
    
    function first(selector) {
      return document.querySelector(selector);
    }
    .new {
      width: 60px;
      height: 60px;
      margin: 4px;
      background-color: #a22;
    }
    <div class="box-1"></div>
    <div class="box-2"></div>

    • 4

相关问题

  • 第二个 Instagram 按钮的 CSS 属性

  • 由于模糊,内容不可见

  • 弹出队列。消息显示不正确

  • 是否可以在 for 循环中插入提示?

  • 如何将 JSON 请求中的信息输出到数据表 Vuetify vue.js?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何从列表中打印最大元素(str 类型)的长度?

    • 2 个回答
  • Marko Smith

    如何在 PyQT5 中清除 QFrame 的内容

    • 1 个回答
  • Marko Smith

    如何将具有特定字符的字符串拆分为两个不同的列表?

    • 2 个回答
  • Marko Smith

    导航栏活动元素

    • 1 个回答
  • Marko Smith

    是否可以将文本放入数组中?[关闭]

    • 1 个回答
  • Marko Smith

    如何一次用多个分隔符拆分字符串?

    • 1 个回答
  • Marko Smith

    如何通过 ClassPath 创建 InputStream?

    • 2 个回答
  • Marko Smith

    在一个查询中连接多个表

    • 1 个回答
  • Marko Smith

    对列表列表中的所有值求和

    • 3 个回答
  • Marko Smith

    如何对齐 string.Format 中的列?

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5