DocumentFragment 节点

代表一个文档的片段,本身就是一个完整的 DOM 树形结构。

没有父节点,.parentNode 返回 null

可以插入任意数量的子节点。

不属于当前文档,操作 DocumentFragment 节点,要比直接操作 DOM 树快得多

一般用于构建一个 DOM 结构,然后插入当前文档

  • 创建一个空的 DocumentFragment 节点
    • var docFrag = document.createDocumentFragment();

// 等同于

    • var docFrag = new DocumentFragment();

  • 然后再使用其他 DOM 方法,向其添加子节点

    • var li = document.createElement('li');
      li.textContent = 'Hello World';
      docFrag.appendChild(li);
  • 最后插入当前文档

    • document.querySelector('ul').appendChild(docFrag);
    • 注意:DocumentFragment 节点本身不能被插入当前文档

      • 当它作为 appendChild()、insertBefore()、replaceChild() 等方法的参数时

        • 是它的所有子节点插入当前文档,而不是它自身
        • 一旦 DocumentFragment 节点被添加进当前文档,它自身就变成了空节点(textContent属性为空字符串),可以被再次使用。
    • 如果想要保存 DocumentFragment 节点的内容,可以使用 cloneNode 方法

      • document.queryselector('ul').appendChild(docFrag.cloneNode(true));
    • 实例

      • // 反转一个指定节点的所有子节点的顺序
        function reverse(ele) {
        var docFrag = document.createDocumentFragment(); while(ele.lastChild){
        docFrag.appendChild(ele.lastChild);
        }
        ele.appendChild(docFrag);
        }

(89)Wangdao.com第二十二天_JavaScript DocumentFragment 节点的更多相关文章

  1. (89)Wangdao.com第二十二天_JavaScript 属性

    属性 属性本身是一个对象(Attr 对象) Element.attributes  返回一个类似数组的动态对象,成员是该元素标签的所有属性节点对象 属性的实时变化都会反映在这个节点对象上. 其他类型的 ...

  2. (87)Wangdao.com第二十天_JavaScript document 节点对象

    document 节点对象, 代表整个文档,每张网页都有自己的 document 对象. window.document 当浏览器开始加载文档时就存在了 正常的网页使用 document 或者 win ...

  3. (73)Wangdao.com第十二天_JavaScript consol 对象与控制台

    consol 对象 console对象是 JavaScript 的原生对象 它有点像 Unix 系统的标准输出stdout和标准错误stderr, 可以输出各种信息到控制台,并且还提供了很多有用的辅助 ...

  4. (88)Wangdao.com第二十一天_JavaScript 元素节点Element 节点

    Element 节点 (元素节点) 是一组对象 对应网页的 HTML 元素 每一个 HTML 元素,在 DOM 树上都会转化成一个 Element 节点对象(以下简称元素节点) 所有元素节点的 nod ...

  5. (72)Wangdao.com第十二天_JavaScript 错误处理机制

    1. Error 实例对象 JavaScript 解析或运行时,一旦发生错误,引擎就会抛出一个错误对象. JavaScript 原生提供Error构造函数,所有抛出的错误都是这个构造函数的实例. va ...

  6. (84)Wangdao.com第十八天_JavaScript 文档对象模型 DOM

    文档对象模型 DOM DOM 是 JavaScript 操作网页的接口, 全称为“文档对象模型”(Document Object Model). 作用是将网页转为一个 JavaScript 对象,从而 ...

  7. javaSE第二十二天

    第二十二天    312 1:登录注册IO版本案例(掌握)    312 2:数据操作流(操作基本类型数据的流)(理解)    313 (1)定义:    313 (2)流对象名称    313 (3 ...

  8. Python第二十二天 stat模块 os.chmod方法 os.stat方法 pwd grp模块

    Python第二十二天   stat模块  os.chmod方法  os.stat方法  pwd  grp模块 stat模块描述了os.stat(filename)返回的文件属性列表中各值的意义,根据 ...

  9. 孤荷凌寒自学python第二十二天python类的继承

    孤荷凌寒自学python第二十二天python类的继承 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) python中定义的类可以继承自其它类,所谓继承的概念,我的理解 是,就是一个类B继承自 ...

随机推荐

  1. expprt与环境变量

    一.Windows 环境变量 1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似 ...

  2. MySQL初步

    一 写在开头1.1 本节内容本节的主要内容是MySQL的基本操作(来自MySQL 5.7官方文档). 1.2 工具准备一台装好了mysql的ubuntu 16.04 LTS机器. 二 MySQL的连接 ...

  3. Linux输入法问题

    本篇博文简单介绍一下介绍Linux输入相关问题及解决方案 关于Invalid UTF-8参见https://www.baidu.com/link?url=QDh2Fa1uJcmyiaKZBzAFkNn ...

  4. Javaweb学习笔记——(二十四)——————图书商城项目

    图书商城          环境搭建         1.导入原型             *用户模块             *分类模块             *图书模块              ...

  5. java8 按条件过滤集合

    //黄色部分为过滤条件list.stream().filter(user-> user.getId() > 5 && "1组".equals(user. ...

  6. 集成方法 Boosting原理

    1.Boosting方法思路 Boosting方法通过将一系列的基本分类器组合,生成更好的强学习器 基本分类器是通过迭代生成的,每一轮的迭代,会使误分类点的权重增大 Boosting方法常用的算法是A ...

  7. jdbc中的sql注入

  8. 如何在element-ui table 取到对应的ID的最后一个对象

    来回切换3个状态值如何得到对应ID的最后一个对象 var is_push = () => { for (var i = 0; i < this.form.FaultDevices.leng ...

  9. java图片缩放与裁剪

    import java.awt.Graphics; import java.awt.Image; import java.awt.image.BufferedImage; import java.io ...

  10. [慢更]Sublime Text 快捷键及使用过的插件

    整理自己常用的sublime text命令和插件 1.pretty json Json 快速格式化,免去url访问json站点的烦恼. 摘自:https://segmentfault.com/a/11 ...