一、概念

insertAdjacentHTML() 方法将指定的文本解析为 Element 元素,并将结果节点插入到DOM树中的指定位置。它不会重新解析它正在使用的元素,因此它不会破坏元素内的现有元素。这避免了额外的序列化步骤,使其比直接使用innerHTML操作更快。

二、比较

在以前,我们习惯使用 DOM 中的 createElement 方法来创建元素,但是当元素内容比较繁杂时,就需要使用 innerHTML 来进行赋值,再在 appendChild 追加到父元素中。appendChild 是不支持追加字符串元素子元素的,而 insertAdjacentHTML 可以支持追加字符串子元素。简化了代码的复杂度。

三、使用方法

语法:

element.insertAdjacentHTML(position, text);

position :表示插入内容相对于元素的位置,可以是以下几个有效值中的一个:

  • 'beforebegin':元素自身的前面。
  • 'afterbegin':插入元素内部的第一个子节点之前。
  • 'beforeend':插入元素内部的最后一个子节点之后。
  • 'afterend':元素自身的后面。
<!-- beforebegin -->
<ul>
<!-- afterbegin -->
<li></li>
<!-- beforeend -->
</ul>
<!-- afterend -->

text : 是要被解析为 HTML 或 XML 元素,并插入到 DOM 树中

使用实例:

// 原 HTML中的代码 <div id="hello">hello</div>

var h = document.getElementById('hello');
h.insertAdjacentHTML('afterend', '<div id="world">world</div>'); // 此时,HTML 新结构变成:
// <div id="hello">hello</div><div id="world">world</div>

四、注意事项

1、使用 insertAdjacentHTML 插入用户输入的 HTML 内容的时候,需要转义之后才能使用。

2、如果只是为了插入文本内容(而不是HTML节点),不建议使用这个方法,建议使用node.textContent 或者 node.insertAdjacentText()。因为这样不需要经过HTML解释器的转换,性能会好一点。

element.insertAdjacentHTML的更多相关文章

  1. (转)DOM appendHTML实现及insertAdjacentHTML

    appenChild() 原文转自 JS中有很多基本DOM方法,例如createElement, parentNode等,其中,appendChild方法是相当地常用与熟知,可谓是DOM节点方法中的& ...

  2. 使用insertBefore实现insertAdjacentHTML()

    Element.insertAdjacentHTML()方法由IE引入,并在HTML5中标准化,它将任意的HTML标记字符串插入到指定的元素“相邻”的位置. insertAdjacentHTML()有 ...

  3. javascript高级程序设计---Element对象

    Element对象对应网页的HTML标签元素.每一个HTML标签元素,在DOM树上都会转化成一个Element节点对象(以下简称元素节点).元素节点的nodeType属性都是1,但是不同HTML标签生 ...

  4. insertAdjacentHTML

    /** * insertAdjacentHTML * 支持 insertAdjacentHTML()方法的浏览器有 IE.Firefox 8+.Safari.Opera 和 Chrome */ var ...

  5. JS代码片段:appendHTML 和 insertAdjacentHTML

    function appendHTML(container,html,position){ position =position || 'after'; var objE = document.cre ...

  6. 插入标记 方法 insertAdjacentHTML

    html5新增的插入标记方法,insertAdjacentHTML() 可以接受2个参数 插入位置和要插入的 HTML 文本.第一个参数必须是下列值之一: "beforebegin" ...

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

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

  8. javascript DOM操作中的insertAdjacentHTML方法

    插入HTML内容与文本内容以前用的是innerHTML与innerText方法,今天看到insertAdjacentHTML和 insertAdjacentText两个API,特地学习一下: inse ...

  9. insertAdjacentHTML与innerHTML

    insertAdjacentHTML:insertAdjacentHTML() 将指定的文本解析为HTML或XML,并将结果节点插入到DOM树中的指定位置.它不会重新解析它正在使用的元素,因此它不会破 ...

随机推荐

  1. 22.2.14session和反反爬处理

    22.2.14 session和反反爬处理 1.session: requests库包含session,都是用来对一个url发送请求,区别在于session是一连串的请求,在session请求过程中c ...

  2. jdk源码阅读笔记

    1.环境搭建 http://www.komorebishao.com/2020/idea-java-jdk-funyard/ 2. 好的源码阅读资源 https://zhuanlan.zhihu.co ...

  3. js file对象 文件大小转换可视容易阅读的单位

    function returnFileSize(number) { if(number < 1024) { return number + 'bytes'; } else if(number & ...

  4. mybatis学习一:基于xml与注解配置入门实例与问题

    注:本case参考自:http://www.cnblogs.com/ysocean/p/7277545.html 一:Mybatis的介绍: MyBatis 本是apache的一个开源项目iBatis ...

  5. 【Java】这 35 个 Java 代码优化细节!

    前言 代码 优化 ,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没 ...

  6. Bootstrap Javascript组件,模态框级联open解决方案

    <script type="text/javascript"> top.global={zIndex:null}; $("body>div[data-m ...

  7. Executors 类是什么?

    Executors 为 Executor,ExecutorService,ScheduledExecutorService, ThreadFactory 和 Callable 类提供了一些工具方法. ...

  8. 如何运行exe文件

    有三种方式 第一种:找到所在文件双击运行. 第二种:在命令行里面运行所在文件夹的位置,在输入文件名. 第三种:加到环境变量里面执行

  9. 学习ELK日志平台(四)

    一:需求及基础: 场景: 1.开发人员不能登录线上服务器查看详细日志 2.各个系统都有日志,日志数据分散难以查找 3.日志数据量大,查询速度慢,或者数据不够实时 4.一个调用会涉及到多个系统,难以在这 ...

  10. C语言 | 栈的应用 | 非递归栈实现快排

    /* 非递归栈实现快排 */ #include <stdio.h> #include <math.h>> #include <malloc.h> #inclu ...