DOM增删改替换
2024-09-01 15:51:30
一、在创建元素的时候为什么要把创建元素到也页面写到后面?
要求:创建一个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 .
最新文章
- redis/php redis扩展 安装
- 网页提示[Not allowed to load local resource: file://XXXX]错误
- iphone6 帶回家”活動!
- Android项目实战(十六):QQ空间实现(一)—— 展示说说中的评论内容并有相应点击事件
- JQuery增删改查
- 【性能诊断】四、单功能场景的性能分析(RedGate,找到同一个客户端的并发请求被串行化问题)
- 使用UI Automation实现自动化测试 --微软提供的控件Pattern
- Android开发之动画(转)
- STM32 IAP 在线更新程序 为什么有时行 有时又不行 感觉不可靠 问题解决
- Selenium 前期学习
- E - Currency Exchange
- List容器
- 联想S720/S720i通刷刷机包 Vibe V1.0
- java表达式陷阱
- .NET Framework 各版本区别
- java.lang.ClassNotFoundException: [Ljava.lang.String解决办法
- Python作用域
- 掌握SQLServer锁的相关概念
- Redux 学习(1) ----- Redux介绍
- ElasticSearch6.5.0【Java客户端之TransportClient】