javascript - 克隆的元素只能插入一次吗
ringa_lee
ringa_lee 2017-04-10 16:42:08
[JavaScript讨论组]

html部分:

  <ul id="ul">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
  </ul>

js部分:

var cache =document.getElementById('ul').children[0].cloneNode(true);
for (var i = 0; i < 3; i++) {
  document.getElementById('ul').appendChild(cache);
}

循环应该执行3次,最后运行结果是只插入了一次。求解

ringa_lee
ringa_lee

ringa_lee

全部回复(1)
天蓬老师

DOM Node对象的appendChild()方法有一个特性:如果将已存在文档中的一个节点再次插入,那么该节点会从它原来在文档中的位置删除,然后在新的位置重新被插入。
可以用如下代码来验证:

var parentUl = document.getElementById("ul"),
    firstLi = parentUl.children[0];
    parentUl.appendChild(firstLi);

所以第二次与第三次的appendChild()方法不是没有运行,而是之前插入的被克隆节点被隐式删除了而已。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号