Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JavaScript HTML DOM 元素 (节点)

JavaScript HTML DOM 元素 (节点)

原创
作者头像
陈不成i
修改于 2021-07-20 06:39:03
修改于 2021-07-20 06:39:03
2.4K00
代码可运行
举报
文章被收录于专栏: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 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
1085 PAT单位排行 (25 分)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
韩旭051
2019/11/08
5180
PAT(甲级)1025.PAT Ranking(25)
PAT 1025.PAT Ranking(25) Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhejiang University. Each test is supposed to run simultaneously in several places, and the ranklists will be merged immediately after the test. Now it is your job to write a program to correctly merge all the ranklists and generate the final rank. 输入格式: Each input file contains one test case. For each case, the first line contains a positive number N (≤100), the number of test locations. Then N ranklists follow, each starts with a line containing a positive integer K (≤300), the number of testees, and then K lines containing the registration number (a 13-digit number) and the total score of each testee. All the numbers in a line are separated by a space.
lexingsen
2022/02/25
3460
【PAT乙级】解码PAT准考证
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
喜欢ctrl的cxk
2019/11/08
1.3K0
【PAT乙级】解码PAT准考证
PAT(甲级)1141.PAT Ranking of Institutions (25 分)
PAT 1141.PAT Ranking of Institutions (25 分)
lexingsen
2022/02/25
2610
PAT 甲级 1025 PAT Ranking
1025. PAT Ranking (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhejiang University. Each test is supposed to ru
ShenduCC
2018/04/27
8480
PAT 1028 List Sorting (25分) 用char[],不要用string
Excel can sort records according to any column. Now you are supposed to imitate this function.
vivi
2020/07/14
3800
PAT 1028 List Sorting (25分) 用char[],不要用string
ZOJ 3705 Applications
Recently, the ACM/ICPC team of Marjar University decided to choose some new members from freshmen to take part in the ACM/ICPC competitions of the next season. As a traditional elite university in ACM/ICPC, there is no doubt that application forms will fi
ShenduCC
2018/04/26
5980
PAT 1025 PAT Ranking (25分) vector + sort
Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhejiang University. Each test is supposed to run simultaneously in several places, and the ranklists will be merged immediately after the test. Now it is your job to write a program to correctly merge all the ranklists and generate the final rank.
vivi
2020/07/14
3630
PAT乙级题目总结
cin 和 cout 比 printf 和 scanf 更加耗时,且不要再同一个程序中同时使用 cout 和 printf。
可爱见见
2019/12/05
5920
CodeForces 24B F1 Champions(排序)
B. F1 Champions time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Formula One championship consists of series of races called Grand Prix. After every race drivers receive points accor
ShenduCC
2018/04/27
5530
记第一次参加PAT(附题解)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
喜欢ctrl的cxk
2019/11/08
9190
记第一次参加PAT(附题解)
PAT 1012 The Best Rank (25分) sort()排序就完了
To evaluate the performance of our first year CS majored students, we consider their grades of three courses only: C - C Programming Language, M - Mathematics (Calculus or Linear Algrbra), and E - English. At the mean time, we encourage students by emphasizing on their best ranks -- that is, among the four ranks with respect to the three courses and the average grade, we print the best rank for each student.
vivi
2020/07/14
3320
1095 解码PAT准考证 (25 分)
果然不愧是最后一题,复杂度还是比较大的。题目也很长,不过仔细看看题目就会发现这也就是个纸老虎,逻辑上没有很大的难度,难就难在,他把三个小问题结合成一个大问题来考查了。
可爱见见
2019/11/20
5200
1095 解码PAT准考证 (25 分)
PAT(甲级)1036.Boys vs Girls(25)
PAT 1036.Boys vs Girls(25) This time you are asked to tell the difference between the lowest grade of all the male students and the highest grade of all the female students.
lexingsen
2022/02/25
1990
1095 解码PAT准考证 (25 分)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
韩旭051
2019/11/08
7890
2 PAT排名汇总 (25分)注意 不要使用 long long int
计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才,为企业选拔人才提供参考标准(网址http://www.patest.cn)。
韩旭051
2020/06/23
5950
Codeforces Round 1703&1702
上班阶段的忙里偷闲(甚至还没做完) 因为只是div4和div3 我又拖了很久没有写()所以不怎么写题意 就贴个代码 1703A: YES or YES? 题目链接 #include<bits/stdc
wenzhuan
2022/08/15
4930
杨校老师课堂之基于C++的结构体排序相结合解题_信息学奥赛-基础练习题
问题描述: 刚举行的万米长跑活动中,有 N 个人跑完了全程,所用的时间都不相同。颁奖时为了增加趣味性,随机抽了一个数 K,要奖励第 K 名一双跑鞋。 现在组委会给你 N 个人的姓名、成绩(用时,单位是秒),请你编程快速输出第 K 名的姓名。
杨校
2025/02/23
960
杨校老师课堂之基于C++的结构体排序相结合解题_信息学奥赛-基础练习题
PAT (Advanced Level) Practice 1028 List Sorting (25分)
Excel can sort records according to any column. Now you are supposed to imitate this function.
glm233
2020/09/28
2690
【PAT乙级】成绩排名
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
喜欢ctrl的cxk
2019/11/08
3240
相关推荐
1085 PAT单位排行 (25 分)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验