一、在创建元素的时候为什么要把创建元素到也页面写到后面?
 
要求:创建一个div,在div中创建10个span.

var div = document.createElement("div");
//document.body.appendChild(div); for(var i=0;i<10;i++){
var span = document.creatElement("span");
div.appendChild(span);
}
document.body.appendChild(div);
原因是如果写在前面就创建一个span 就要打开一次body,div写入,这样的效率太慢啦。但是如果先讲span 在内存中直接写入,这样就打开2次,这样一次行就节省了很多的效率。
先创建一个容器,将子元素,放到父容器中,最后讲父容器放到页面中。
 
如果一定要写入到body页面中。就用碎片容器。
//创建碎片容器:
var elem = document.createDocumentFragment();
for(var i =0;i<10;i++){
var div = document.creatElement("div");
}
document.body.appendChile(elem);

二、删除元素三部曲

//元素删除的时候应该先删除事件,在删除元素。因为纯粹的删除的元素只是从Dom书中删除,并没有删除内容。删除元素的步骤:
第一步:删除事件
 
第二步:删除元素
 
第三步:将元素设为null
var div = document.createElement("div");
var span = document.createElement("span");
span.addEventListener("click",clickHandler); div.appendChild(span);
document.body.appendChild(div);
function clickHandler(e){
span.textContent="欢迎";
}
//删除之前的将事件删除
span.removeEventListener("click",clickHandler);
//使用onclick事件的时候,删除方法删除事件
//span.onclick=null //删除元素
div.removeChild(span);
span=null; div.appendChild(span);
//此时的span不再是节点,是null,再添加的时候就会报错
三、替换元素:
父容器.removeChild(新元素,要替换掉的旧元素)

 四、复制元素:

源元素.cloneNode(deep)
deep 是深度的意思;
true:时是深度赋值,将子元素和内容一起赋值,源元素的属性复制
false: 是潜复制,将源元素和属性复制
注意:
如果使用 cloneNode 复制元素的时候,必须修改元素的 id .

  

 

 

 

DOM增删改替换的更多相关文章

  1. DOM增删改

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  2. JavaScript HTML DOM增删改查

    首先 js 可以修改HTML中的所有元素和属性,它还可以改变CSS样式,并且可以监听到所有事件并作出响应,这篇笔记呢 主要记录如何对HTML元素进行增删改查. 1 查找DOM 第一种方式是我们最常用的 ...

  3. linux sed 命令 实现对文件的增删改替换查 实验

    1. 统一实验文本 # 创建包含下面内容的文件,后面的操作都会使用这个文件 [root@MongoDB ~]# cat person.txt ,mike,CEO ,jack,CTO ,yy,CFO , ...

  4. DOM增删改操作

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  5. 第 9 章 DOM 的增删改查

    DOM 的增删改查 本文不会详细讲解,只是简单提及知识要点,详细可以参考<dom高级编程>. 1. document.write document.write('<h1>创建节 ...

  6. DOM节点的增删改查

    在开始展开DOM操作前,首先需要构建一棵DOM树. <!DOCTYPE html> <html lang="en"> <head> <me ...

  7. HTML DOM节点的增删改查

    上篇博客中,我们已经初步接触了DOM基础,可是我们学习是为了可以更好地应用,今天我们就来看看DOM节点的增删改查. 无论在哪里,我们想要操作一个东西,总是应该先去获得它.那么我们怎么获得呢? HTML ...

  8. JavaScript---Dom树详解,节点查找方式(直接(id,class,tag),间接(父子,兄弟)),节点操作(增删改查,赋值节点,替换节点,),节点属性操作(增删改查),节点文本的操作(增删改查),事件

    JavaScript---Dom树详解,节点查找方式(直接(id,class,tag),间接(父子,兄弟)),节点操作(增删改查,赋值节点,替换节点,),节点属性操作(增删改查),节点文本的操作(增删 ...

  9. 超详细的DOM操作(增删改查)

    操作DOM的核心就是增删改查 原文地址:https://jianshu.com/p/b0aa846f4dcc 目录 一.节点创建型API 1.1 createElement 1.2 createTex ...

随机推荐

  1. 本次作业统一标题:C语言I博客作业02

    这个作业属于哪个课程 C语言程序设计1 这作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/8655 我在这个课程的目标是 ...

  2. 【百度地图】如何去掉百度LOGO

    只需要一步就解决问题,在CSS里加入一段代码即可: .anchorBL{display:none;}

  3. Flutter中TabBarView切换状态保存

    TabBarView 类似于Android中的viewPager,但是默认是没有实现切换分页状态保存的.估计是出于节约内存的原因吧. 发现这个问题的时候,搜索了一下全网.大致就两种解决方案,1是修改源 ...

  4. java中不创建使用第三方变量,交换两个数的值

    1.直接使用算术运算法交换 先把两个数的和赋值给其中一个,然后做减法.例如num1=num1+num2; 此时num2(交换之后)就等于num1减去num2:废话不多说,直接上代码 public cl ...

  5. deferred对象和promise对象(一)

    个人认为阮一峰老师讲的关于deferred对象是最容易理解的. deferred对象是jquery的回调函数解决方案.解决了如何处理耗时操作的问题,对那些操作提供了更好的控制,以及统一的编程接口. d ...

  6. 并发新构件之CountDownLatch

    CountDownLatch译为倒计时锁存器:JDK描述     :允许一个或多个线程等待直到在其他线程中执行的一组操作完成的同步辅助. A CountDownLatch用给定的计数初始化. awai ...

  7. Flask源码分析一:服务启动

    前言: Flask是目前为止我最喜欢的一个Python Web框架了,为了更好的掌握其内部实现机制,这两天准备学习下Flask的源码,将由浅入深跟大家分享下,其中Flask版本为1.1.1. Flas ...

  8. nishang的介绍与使用

    0x01前言 Nishang是一个PowerShell攻击框架,它是PowerShell攻击脚本和有效载荷的一个集合.Nishang被广泛应用于渗透测试的各个阶段,本文主要介绍如何使用Nishang的 ...

  9. 内网渗透bypassuac和smb溢出

    对内网渗透需要渗透的目标主机处于跨网段和uac限制的情况做一个渗透记录 环境大致如下 拥有shell权限的win7(有uac限制,处于双网段) 和同win7同一网段下暂时无权限的靶机xp 先对有权限的 ...

  10. [CF544] D. Destroying Roads

    D. Destroying Roads time limit per test 2 seconds memory limit per test 256 megabytes input standard ...