089_DOM节点动态创建、添加和删除
1. 创建节点
1.1. 创建元素
document.createElement(tagName);
1.2. 创建文本
document.createTextNode("这是新文本。");
2. 添加节点
2.1. appendChild()方法, 追加新元素作为父的最后一个子。
parentElement.appendChild(newElement);
2.2. insertBefore()方法, 在父元素的子元素前插入一个元素。
parentElement.insertBefore(newElement, childElement);
3. 删除节点
3.1. removeChild()方法, 从父元素中删除一个节点。
3.2. 很遗憾, DOM需要同时了解您需要删除的元素及其父。
parentElement.removeChild(childElement);
3.3. 这是一种常见的解决方法: 找到你想要删除的子, 并利用其parentNode属性找到父:
childElement.parentNode.removeChild(childElement);
4. 替换节点
4.1. replaceChild()方法, 从父元素中替换一个子。
childElement.parentNode.replaceChild(newElement, oldElement);
5. 属性节点
5.1. 创建属性
var attr = document.createAttribute(attributename);
// 给属性赋值
attr.value = 'test'
5.2. setAttributeNode()方法用于添加新的属性节点。如果元素中已经存在指定名称的属性, 那么该属性将被新属性替代。如果新属性替代了已有的属性, 则返回被替代的属性, 否则返回NULL。
element.setAttributeNode(attributenode)
5.3. getAttributeNode()方法从当前元素中通过名称获取属性节点。
element.getAttributeNode(attributename)
5.4. removeAttributeNode()方法从元素中删除指定的属性节点。该方法从当前元素的属性集合中删除(并返回一个)Attr节点。用removeAttribute()方法代替该方法往往会更简单。
element.removeAttributeNode(attributenode)
6. 例子
6.1. 代码
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>DOM节点动态创建、添加和删除</title></head><body><div id="div1"><p>我是第一个p节点</p><p>我是第二个p节点</p></div><div id="div2">删除我</div><div id="div3">替换我</div><script type="text/javascript">var div1 = document.getElementById('div1');var preP = document.createElement('p');// 创建文本var textPreP = document.createTextNode('我是前置p');preP.appendChild(textPreP);// 创建属性var idAttr = document.createAttribute("id");idAttr.value = 'preP';preP.setAttributeNode(idAttr);div1.insertBefore(preP, div1.firstChild);var div2 = document.getElementById('div2');div2.parentNode.removeChild(div2);var div3 = document.getElementById('div3');var divReplace = document.createElement('div');// 创建文本var replaceText = document.createTextNode('我是被替换的');divReplace.appendChild(replaceText);// 添加属性divReplace.setAttribute('id', 'divReplace');div3.parentNode.replaceChild(divReplace, div3);document.write(div1.firstChild.removeAttributeNode(idAttr).value + '<br />');document.write(divReplace.getAttributeNode('id').value + '<br />');// 动态在head标签中添加cssvar headStyle = document.getElementsByTagName("head")[0].appendChild(document.createElement("style"));headStyle.type = "text/css";headStyle.textContent = "p { background-color: red; height: 40px; line-height: 40px; } div { background-color: green;}";</script></body>
</html>
6.2. 效果图
089_DOM节点动态创建、添加和删除相关推荐
- JS 动态创建元素、删除元素、替换元素、修改元素
动态创建元素 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...
- js动态创建元素和删除
动态创建元素的三种方式: 一.document.write(): 功能:向body的最后添加一段结构: 参数:字符串: 用法:document.write('这是内容<div>这是div& ...
- 【web前端】JavaScript DOM元素(节点的创建appendChild(),删除removeChild(),修改replaceChild())
创建新的 HTML 元素 (节点) - appendChild() 实例: <!DOCTYPE html> <html><head><meta charset ...
- JQuery实现动态表格(添加、删除、遍历)
遍历表格逻辑 1.浏览器会自动把所有行tr使用tbody标签包裹起来 2.使用childern()获取当前元素的所有儿子标签 3.table表格需要两个childern才能获取到所有tr行,若一个ch ...
- jQuery根据当前节点元素找到父子、兄弟节点元素进行添加或删除
目录 1.查找父子.兄弟节点元素 1)父级 2)子级 3)同级 2.添加删除选中的dom元素 jQuery根据ID删除元素 jquery的删除属性的方法 1.查找父子.兄弟节点元素 在操作DOM元素的 ...
- JavaScript学习笔记:创建、添加与删除节点
JavaScript学习笔记:创建.添加与删除节点 文章目录 JavaScript学习笔记:创建.添加与删除节点 一.DOM对象节点类型 二.创建节点 1.创建元素节点 2.创建文本节点 3.创建属性 ...
- Winform中对自定义xml配置文件进行Xml节点的添加与删除
场景 Winform中自定义xml配置文件后对节点进行读取与写入: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10053213 ...
- b站 4天从零玩转jQuery【黑马程序员】部分案例代码_表格添加和删除案例
这个是两个视频的内容写在一起了 1.下午07-案例-表格删除 2.下午10-案例-动态数据添加和删除 应该就是这两个视频. <!DOCTYPE html> <html>< ...
- jquery的DOM节点操作(创建和插入元素节点)
1.创建元素节点 2.插入节点 动态创建新元素节点后,需要执行插入或追加操作,否则不会在页面显示出来. 按照元素的层次关系来分,可以分为内部和外部两种方法 元素内部插入子节点 元素内部插入子节点有两种 ...
最新文章
- 前端分离的前端开发工具_使我成为前端开发人员工作的工具和资源
- python 深拷贝_Python之类的浅拷贝与深拷贝
- MapReduce运行机制-Map阶段
- 《C语言开发从入门到精通》一2.4 技术解惑
- 神盾局特工第四季/全集Agents Of SHIELD迅雷下载
- oracle如何储存超长汉子_热水器该如何选择?!
- shell实例100例《六》
- GitLab账号注册及分组
- JAVA_SE实现桌面化功能
- MCE | 世界“第一杀手”——心血管疾病
- 面试官再问线程池,你这样谈谈线程的回收,好感会倍增!
- 终于还是对闲鱼下手了。闲鱼爬虫,idlefish spider来了
- Excel手机号如何查询实名认证?
- avi转换成mp4格式,avi转mp4
- pip 安装与卸载软件包
- RC低通滤波器的响应特性
- 微距摄影昆虫拍摄技巧
- C++的std::move及相关概念
- 中国科学技术大学研究生2021生化原理与应用复习资料及往年考试题
- AlphaGo对战李世石谁能赢?两万字长文深挖围棋AI技术(二)
热门文章
- eclipse中使用svn提交,更新代码。
- not accessible due to restriction on required library
- 怎样一步一步删除(linux amp; UNIX)环境下 oracle 11g 集群节点
- OLTP系统的Oracle RAC性能调优,索引分区极大提升提交性能
- sudo运行程序遇到的问题
- 力扣——所有可能的满二叉树
- tf.device()指定tensorflow运行的GPU或CPU设备
- Java多线程,实现卖电影票的业务
- iOS 最新发布App Store流程
- [译文]c#扩展方法(Extension Method In C#)