首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JavaScript HTML DOM 元素 (节点)

JavaScript HTML DOM 元素 (节点)

原创
作者头像
陈不成i
修改于 2021-07-20 06:39:03
修改于 2021-07-20 06:39:03
2.5K00
代码可运行
举报
文章被收录于专栏:ops技术分享ops技术分享
运行总次数:0
代码可运行

本章节介绍如何向文档中添加和移除元素(节点)。


创建新的 HTML 元素 (节点) - appendChild()

要创建新的 HTML 元素 (节点)需要先创建一个元素,然后在已存在的元素中添加它。

实例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="div1">
<p id="p1">这是一个段落。</p>
<p id="p2">这是另外一个段落。</p>
</div>
 
<script>
var para = document.createElement("p");
var node = document.createTextNode("这是一个新的段落。");
para.appendChild(node);
 
var element = document.getElementById("div1");
element.appendChild(para);
</script>

实例解析

以下代码是用于创建 <p> 元素:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var para = document.createElement("p");

为 <p> 元素创建一个新的文本节点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var node = document.createTextNode("这是一个新的段落。");

将文本节点添加到 <p> 元素中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
para.appendChild(node);

最后,在一个已存在的元素中添加 p 元素。

查找已存在的元素:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var element = document.getElementById("div1");

添加到已存在的元素中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
element.appendChild(para);

创建新的 HTML 元素 (节点) - insertBefore()

以上的实例我们使用了 appendChild() 方法,它用于添加新元素到尾部。

如果我们需要将新元素添加到开始位置,可以使用 insertBefore() 方法:

实例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="div1">
<p id="p1">这是一个段落。</p>
<p id="p2">这是另外一个段落。</p>
</div>
 
<script>
var para = document.createElement("p");
var node = document.createTextNode("这是一个新的段落。");
para.appendChild(node);
 
var element = document.getElementById("div1");
var child = document.getElementById("p1");
element.insertBefore(para, child);
</script>

移除已存在的元素

要移除一个元素,你需要知道该元素的父元素。

实例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="div1">
<p id="p1">这是一个段落。</p>
<p id="p2">这是另外一个段落。</p>
</div>
 
<script>
var parent = document.getElementById("div1");
var child = document.getElementById("p1");
parent.removeChild(child);
</script>

注意:早期的 Internet Explorer 浏览器不支持 node.remove() 方法。

实例解析

HTML 文档中 <div> 元素包含两个子节点 (两个 <p> 元素):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="div1">
<p id="p1">这是一个段落。</p>
<p id="p2">这是另外一个段落。</p>
</div>

查找 id="div1" 的元素:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var parent = document.getElementById("div1");

查找 id="p1" 的 <p> 元素:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var child = document.getElementById("p1");

从父元素中移除子节点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
parent.removeChild(child);

如果能够在不引用父元素的情况下删除某个元素,就太好了。不过很遗憾。DOM 需要清楚您需要删除的元素,以及它的父元素。

以下代码是已知要查找的子元素,然后查找其父元素,再删除这个子元素(删除节点必须知道父节点):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var child = document.getElementById("p1");
child.parentNode.removeChild(child);

替换 HTML 元素 - replaceChild()

我们可以使用 replaceChild() 方法来替换 HTML DOM 中的元素。

实例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="div1">
<p id="p1">这是一个段落。</p>
<p id="p2">这是另外一个段落。</p>
</div>
 
<script>
var para = document.createElement("p");
var node = document.createTextNode("这是一个新的段落。");
para.appendChild(node);
 
var parent = document.getElementById("div1");
var child = document.getElementById("p1");
parent.replaceChild(para, child);
</script>

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
6点半下班,已经成为公司最后走的人
ArrayList 确切地说,应该叫做动态数组,因为它的底层是通过数组来实现的,当往 ArrayList 中添加元素时,会先检查是否需要扩容,如果当前容量+1 超过数组长度,就会进行扩容。
沉默王二
2024/05/15
980
6点半下班,已经成为公司最后走的人
每次面完美团,都是一把汗。。
不知不觉,银 4 已经走过一半了,明显能感受到大家的学习热情在减退,不管是 24 届春招,还是 25 届暑期实习,以及社招,希望大家都能有一个好的去处。
沉默王二
2024/04/19
3560
每次面完美团,都是一把汗。。
招银网络科技,心痛拒了!
Lambda 表达式主要用于提供一种简洁的方式来表示匿名方法,使 Java 具备了函数式编程的特性。
沉默王二
2024/05/14
1320
招银网络科技,心痛拒了!
这是周鸿祎的简历,600元的迈巴赫卖了990万
最近,互联网的早期网红周鸿祎又重新回到了大众的视野中心,600 元起拍的迈巴赫最终卖到了 990 万,这 10000 倍的溢价背后,是附送周老板的一次饭局,嘿嘿,有点当年巴菲特老爷子的味道(嗯,这饭这车都挺贵)。
沉默王二
2024/05/06
2140
这是周鸿祎的简历,600元的迈巴赫卖了990万
百度二面,有点小激动!附面试题
前几天刚面完百度,这不,没两天就收到二面邀请了,还有点小激动呢!来看看这次都问了哪些面试题吧,附答案仅供参考。
磊哥
2024/06/19
1710
年少不知编制香,错把技术当成宝。
周五晚上线下见了一名读者,和他的交集也有好多年了。21年就专门写过一篇关于他的帖,老读者应该有印象,当时阅读不低,内容也很干。
沉默王二
2024/04/19
1210
年少不知编制香,错把技术当成宝。
MySQL八:读懂MVCC多版本并发控制
mysql在并发的情况下,会引起脏读,幻读,不可重复读等一系列的问题,为解决这些问题,引入了mvcc的机制。本文就详细看看mvcc是怎么解决脏读,幻读等问题的。
云扬四海
2022/09/26
8110
京东后端实习一面,凉凉。。
今天继续给大家带来硬核面经,这次我们以《Java 面试指南》中同学 10 的 京东后端实习一面(已挂)为例,来看看如果你在面试中遇到这些面试题的话,该如何回答?
沉默王二
2024/03/25
8440
京东后端实习一面,凉凉。。
深入了解Mysql的MVCC机制
早上上班途中,趁着坐地铁的功夫翻了翻高性能mysql这本书,准备回顾一下MVCC这块的知识点,因为书中对MVCC的讲解不是很多,于是我很快便看完了这一段落,但是文章末尾有一段话引起了我的思考。
敲得码黛
2021/11/01
1.4K0
深入了解Mysql的MVCC机制
阿里年包80万,还是洒水车司机月薪3000
牛客上刷到一条帮选 offer 的帖子,上来就是“阿里 80 万年包,边缘业务”,于是很有诚意的点进去,想帮牛友分担一点选择上的负担,结果看得汗流浃背。
沉默王二
2024/06/04
1440
阿里年包80万,还是洒水车司机月薪3000
美团研发岗的薪酬一览表。。
String、StringBuilder和StringBuffer在 Java 中都是用于处理字符串的,它们之间的区别是,String 是不可变的,平常开发用得最多,当遇到大量字符串连接时,就用 StringBuilder,它不会生成很多新的对象,StringBuffer 和 StringBuilder 类似,但每个方法上都加了 synchronized 关键字,所以是线程安全的。
沉默王二
2024/05/14
1760
美团研发岗的薪酬一览表。。
MySql避坑指南:可重复读隔离级别下,并发情况下更新丢失问题避坑
解决并发问题,当然锁最靠谱,所以MySql也提了共享锁、排它锁等。但是一个并发性能良好的系统一旦加锁,不可避免的造成访问的串行化,影响并发性能。所以MySql提供了一种乐观锁的实现:MVCC(多版本并发控制),来解决读-写并发不加锁。
崔认知
2023/06/20
3.7K2
MySql避坑指南:可重复读隔离级别下,并发情况下更新丢失问题避坑
华为的职级与薪资体系。。
站在一个旁观者的角度,我个人对任何厂都是没有抵触情绪的,只要发 offer,只要钱给到位,只要不拖延,只要能就业,就算是好公司(咱要求不高)。
沉默王二
2024/05/14
2970
华为的职级与薪资体系。。
决定放弃华为宝贵的offer了
,实习和正式 offer 之间还是有蛮大差别的,去小厂的话,有更大的概率接触到核心业务,以此来增加自己秋招的竞争力。但去大厂,更大概率就是打杂,需要自己竖起耳朵,多听多问多沉淀,才能不会显得走过场。
沉默王二
2024/06/04
1760
决定放弃华为宝贵的offer了
偷偷盘点一下京东研发岗薪资
京东这几天的热度真的非常高,据说零售部门开始严查考勤,并且调整了午休时间,整整缩短了一个小时,从原来的 11:30-13:30 调整为 12:00-13:00。
沉默王二
2024/05/23
1.3K0
偷偷盘点一下京东研发岗薪资
有点惊喜,理想一面通关了!
这次给大家分享一位同学面试理想汽车的Java 后端校招一面面经,顺利通过一面了,进入二面。考察的知识点, 针对八股文的涉及的内容,我帮大家列了一下:
小林coding
2024/03/18
2160
有点惊喜,理想一面通关了!
推荐一家还不错的互联网中厂。
我是从大一下学期开始学习 Java 的,当时已经学完了 C语言,但苦于 C语言没有很好的应用方向,就开始学习 Java 了,因为我了解到,绝大多数的互联网公司后端服务都是用 Java 开发的,另外就是学习资料也非常丰富,就业岗位和薪资待遇都比较理想。
沉默王二
2024/04/26
1890
推荐一家还不错的互联网中厂。
微众银行一面,细节拉满!!
AQS,全称是 AbstractQueuedSynchronizer,中文意思是抽象队列同步器,由 Doug Lea 设计,是 Java 并发包java.util.concurrent的核心框架类,许多同步类的实现都依赖于它,如 ReentrantLock、Semaphore、CountDownLatch 等。
沉默王二
2024/04/26
1750
微众银行一面,细节拉满!!
这是璩静的简历,4条短视频丢了百度千万年薪的工作
在技术派实战项目中,很多地方都用到了 Redis,比如说用户活跃排行榜、作者白名单、常用热点数据(文章标签、文章分类)、计数统计(文章点赞收藏评论数粉丝数)等等。
沉默王二
2024/05/14
1700
这是璩静的简历,4条短视频丢了百度千万年薪的工作
公务员薪资开始赶超互联网!
接下来,继续给大家分享一个《Java 面试指南-农行面经同学 3》的 面试原题,来看看农行面试官都喜欢问哪些问题,好做到知彼知己百战不殆。
沉默王二
2024/04/26
1300
公务员薪资开始赶超互联网!
相关推荐
6点半下班,已经成为公司最后走的人
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档