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. 如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件

    如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件 最近初学Git,而且在使用的IDE是IntelliJ IDEA,发现IDEA在提交项目到本地仓库的时候,会把.idea文件 ...

  2. VS2012/2013/2015/Visual Studio 2017 关闭单击文件进行预览的功能

    Visual Studio在2010版本后推出了点击项目管理器预览文件的功能,但是对于配置不咋地的旧电脑总是觉得有点卡,下面是解决方案. 英文版方法:Tools->Options->Env ...

  3. 第十节:基于MVC5+Unity+EF+Log4Net的基础结构搭建

    一. 前言 本节继续探讨一种新的框架搭建模式,框架的结构划分和上一节是相同的,本节IOC框架换成了Unity,并且采用构造函数注入的方式,另外服务层的封装模式也发生了变化,下面将详细的进行探讨. (一 ...

  4. 四十九、进程间通信——System V IPC 之消息队列

    49.1 System V IPC 介绍 49.1.1 System V IPC 概述 UNIX 系统存在信号.管道和命名管道等基本进程间通讯机制 System V 引入了三种高级进程间通信机制 消息 ...

  5. 一些Js操作

    一.after()和before()方法的区别 after()——其方法是将方法里面的参数添加到jquery对象后面去:    如:A.after(B)的意思是将B放到A后面去:    before( ...

  6. Windows下VSCode编译调试c/c++

    参考链接:  https://blog.csdn.net/c_duoduo/article/details/51615381 支持makefile编译: https://www.cnblogs.com ...

  7. 《Java编程思想第四版完整中文高清版.pdf》-笔记

    D.2.1 安插自己的测试代码 插入下述“显式”计时代码,对程序进行评测: long start = System.currentTimeMillis(); // 要计时的运算代码放在这儿 long ...

  8. 实现JWT刷新机制以及让过期时间更精确

      借助accessToken和refreshToken实现   accessToken控制刷新间隔,refreshToken控制最长过期时间   Min过期时间 = refreshToken过期时间 ...

  9. node中间层转发请求

    前台页面: $.get("/api/hello?name=leyi",function(rps){ console.info(rps); }); node中间层(比如匹配api开头 ...

  10. Javascript—DOM

    1.什么是DOM? DOM 是 W3C(万维网联盟)的标准.DOM 定义了访问 HTML 和 XML 文档的标准: "W3C 文档对象模型(DOM)是中立于平台和语言的接口,它允许程序和脚本 ...