我是靠谱客的博主 美丽山水,这篇文章主要介绍JavaScript元素节点的增删改查,现在分享给大家,希望可以做个参考。

对于元素节点,我们是用createElement()来创建一个元素节点。对于文本节点,可以使用creatTextNode()来创建文本节点。然后将其组装成我们看到的有文本内容的元素。

这种创建的元素被称为动态Dom。相比于静态Dom,动态Dom实际上一开始是不存在的。

1.创建一个简单的元素。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="content"></div> </body> <script> function func() { var oDiv = document.getElementById("content"); var oStrong = document.createElement("strong"); var oTxt = document.createTextNode("博客园学习"); // 将文本节点插入strong元素 oStrong.appendChild(oTxt); // 将strong元素插入div元素 oDiv.appendChild(oStrong); } func() </script> </html>
2.创建复杂的元素
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> </body> <script> function func() { var oInput = document.createElement("input"); oInput.id = "submit"; oInput.type = "button"; oInput.value = "提交"; document.body.appendChild(oInput); } func() </script> </html>
3.动态地创建图片
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> </body> <script> function func() { var oImg = document.createElement("img"); // 注意这里不是class而是className,因为class是保留字 oImg.className = "pic"; oImg.src = "img/example.jpg"; oImg.style.border = "1px solid sliver"; document.body.appendChild(oImg); } func() </script> </html>

把文本节点插入元素节点和组装好的元素插入到已有的元素中都是appendChild()。

4.实现一个动态地插入元素。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <ul id="list"> <li>HTML</li> <li>CSS</li> <li>JavaScript</li> </ul> <input id="txt" type="text"/><input id="btn" type="button" value="输入"/> </body> <script> function func() { var oBtn = document.getElementById("btn"); oBtn.onclick = function () { var oUl = document.getElementById("list"); var oTxt = document.getElementById("txt"); // 将文本框的内容转化为文本节点 var textNode = document.createTextNode(oTxt.value); var oli = document.createElement("li"); oli.appendChild(textNode); oUl.appendChild(oli); } } func() </script> </html>
效果如图:

image

输入Vue.js

image

insertBefore()将一个新的元素插入到父元素中的某一个子元素之前。(比如说第一个)

复制代码
1
A.insertBofore(B, A.firstElementChild);
5.removeChild()删除元素。

A表示父元素,B表示父元素的某个子元素。

复制代码
1
A.removeChild(B)

删除最后一个元素:

复制代码
1
A.removeChild(A.lastElementChild)

删除整个列表:

复制代码
1
document.body.removeChild(A);

完整的例子:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <ul id="list"> <li>HTML</li> <li>CSS</li> <li>JavaScript</li> </ul> <input id="btn" type="button" value="删除"/> </body> <script> function func() { var oBtn = document.getElementById("btn"); oBtn.onclick = function () { var oUl = document.getElementById("list"); document.body.removeChild(oUl); } } func() </script> </html>
6 A.cloneNode(bool)复制元素:

bool是布尔值,1或true表示复制元素本身以及自己所有的子元素,0或false仅仅复制元素本身。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <ul id="list"> <li>HTML</li> <li>CSS</li> <li>JavaScript</li> </ul> <input id="btn" type="button" value="复制"/> </body> <script> function func() { var oBtn = document.getElementById("btn"); oBtn.onclick = function () { var oUl = document.getElementById("list"); document.body.appendChild(oUl.cloneNode(1)); } } func() </script> </html>
7.替换元素

语法:

A.replacechild(new, old)

例:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <p>JavaScript</p> <hr/> 输入标签:<input id="tag" type="text"/><br/> 输入内容:<input id="txt" type="text"/><br/> <input id="btn" type="button" value="替换"/> </body> <script> function func() { var oBtn = document.getElementById("btn"); oBtn.onclick = function () { var oFirst = document.querySelector("body *:first-child"); var oTag = document.getElementById("tag"); var oTxt = document.getElementById("txt"); // 根据两个文本框的值来创建新的节点 var oNewTag = document.createElement(oTag.id); var oNewTxt = document.createTextNode(oTxt.value); oNewTag.appendChild(oNewTxt); document.body.replaceChild(oNewTag, oFirst); } } func() </script> </html>

如图:

image

点击替换:

image

转载于:https://www.cnblogs.com/haoqirui/p/10550024.html

最后

以上就是美丽山水最近收集整理的关于JavaScript元素节点的增删改查的全部内容,更多相关JavaScript元素节点内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部