方式一:

   使用  document.write()

   语法格式

document.write('新设置的内容<p>标签也可以生成</p>');

    注意:在使用方式的时候,write() 输出内容,会把之前的整个页面覆盖掉

方式二:

   使用 innerHTML

   语法格式

var box = document.getElementById('box');
box.innerHTML = '新内容<p>新标签</p>';

    注意:这种方式创建大量的标签会存在效率问题

方式三:

   使用 document.createElement()  创建元素节点

   语法格式

var div = document.createElement('div');                //在内存中创建一个元素节点
var textNode = document.createTextNode('Hello World'); //在内存中创建一个文本节点
div.appendChild(textNode); //将文本节点追加到 元素节点内
document.body.appendChild(div);

    这种方式,是先在内存中创建一个 DOM 对象,然后把这个对象添加到 DOM 树上。

性能问题 

   innerHTML  方法由于会对字符串进行解析,需要避免在循环内多次使用。所以并不推荐使用。

   innerHTML 的优化:可以先将字符串拼接好,或者直接放入 数组中,再转成字符串,再使用 innerHTML。

   

注意:

  当使用 innerHTML 把一个元素内部清空的时候,如果元素内部有绑定的事件,这些事件并不回自动删除,从而发生了内存泄漏问题。

  而 使用 removeChild 移除某个元素的时候,会把与之相应的事件也清除掉的。

  Demo:

 <div id='box'>
<input type="button" value="点击" id='btn'>
</div> <script type="text/javascript">
var box = document.getElementById('box');
var btn = document.getElementById('btn'); btn.onclick = function() {
alert('Hello javascript');
} // box.removeChild(btn); 不会发生内存泄漏,绑定事件随之消除
box.innerHTML = ""; // 发生内存泄漏,事件不消除,仍然存在
</script>

JavaScript 之 创建元素的更多相关文章

  1. JavaScript 、jQuery动态创建元素的关键字~

    JavaScript动态创建元素: 1.创建元素  如:a 标签 var alink= document.createElement("a"); 2.j添加元素属性 alink.h ...

  2. js中改变文档的层次结构(创建元素节点,添加结点,插入子节点,取代子节点,删除子节点)

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  3. Javascript:DOM动态创建元素实例应用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. Javascript进阶篇——(DOM—节点---插入、删除和替换元素、创建元素、创建文本节点)—笔记整理

    插入节点appendChild()在指定节点的最后一个子节点列表之后添加一个新的子节点.语法: appendChild(newnode) //参数: //newnode:指定追加的节点. 为ul添加一 ...

  5. JavaScript获取和创建元素

    1.JavaScript中获取元素 常用的获取document中元素的方法: 1) document.getElementById()  =>通过元素ID获取文档中特定的元素,如获取 id = ...

  6. JavaScript DOM三种创建元素的方式

    三种创建元素的方式: document.write() element.innerHTML document.createElement() 初始HTML内容: <button>btn&l ...

  7. 用javascript实现html元素的增删查改[xyytit]

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. JavaScript HTML DOM 元素(节点)

    JavaScript HTML DOM 元素(节点) 创建新的 HTML 元素 创建新的 HTML 元素 如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一个已存在的元素 ...

  9. 【2017-03-31】JS-DOM操作:操作属性、彩虹导航栏、定时器、操作内容、创建元素并添加、操作相关元素

    一.操作属性 1.什么是属性: <div class="div" id="div1" style="" ></div> ...

随机推荐

  1. Java Scanner语法

    1.导入: import java.util.Scanner; 2.创建对象 Scanner scan = new Scanner(System.in);//一般变量名为scan或者in 最后关闭,s ...

  2. RabbitMQ消息确认机制

    文章目录 1. 事务机制2. Confirm模式2.1 生产者2.1.1 普通Confirm模式2.1.2 批量Confirm模式2.1.3 异步Confirm模式2.2 消费者3. 其他 消费者如何 ...

  3. MongoDB的安装与简单使用

    一.安装MongoDB的步骤 注:本教程全部统一采用hadoop用户名登录Linux系统,用户名:hadoop 密码:hadoop ​ 首先,在Linux系统中打开一个终端,执行如下命令导入公共秘钥到 ...

  4. spark基础知识四

    围绕spark的其他特性和应用.主要包括以下几个方面 spark自定义分区 spark中的共享变量 spark程序的序列化问题 spark中的application/job/stage/task之间的 ...

  5. 团队作业第五次—项目冲刺-Day1

    Day1 项目相关 作业相关 具体描述 所属班级 2019秋福大软件工程实践Z班 作业要求 团队作业第五次-项目冲刺 作业正文 hunter--冲刺集合 团队名称 hunter小组 作业目标 最终做出 ...

  6. java基础 static

    参考文章: 静态导包:https://blog.csdn.net/u012338954/article/details/51010337 常量池:http://blog.sina.com.cn/s/b ...

  7. pytest新版本(5.3.2)中收集测试方法规则不支持以test结尾的方法

    pytest新版本(5.3.2)中收集测试方法规则不支持以test结尾的方法,只能命名为以test开头,否则不能识别到

  8. 【IntelliJ IDEA学习之六】IntelliJ IDEA 调试

    版本:IntelliJIDEA2018.1.4 一.设置热部署1.自动编译 2.配置hotswap 3.开启compiler.automake.allow.when.app.running CTRL ...

  9. Shell脚本之五 基本运算符

    Shell 和其他编程语言一样,支持多种运算符,包括: 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 ...

  10. QuantLib 金融计算——基本组件之 ExchangeRate 类

    目录 QuantLib 金融计算--基本组件之 ExchangeRate 类 概述 构造函数 成员函数 如果未做特别说明,文中的程序都是 python3 代码. QuantLib 金融计算--基本组件 ...