- 因为节点关系都是只读的,所以 DOM 提供了一些操作节点的方法
- 使用document对象的createElement方法能够根据参数指定的标签名创建一个新的元素。并返回对新元素的引用
- 使用creatElement方法创建的新元素不会被自动添加到文档里,需要使用appendChild等方法
- 使用document对象的createTextNode()方法可创建文本节点
- 参数是一个字符串
- 创建的文本节点需要使用appendChild等方法才能插入到元素节点中
- 当然也可以使用innerHTML方法给元素节点添加内容
- appendChild()方法可以向当前节点的字节点列表的末尾添加新的节点
- 如果文档树中已经存在参数节点,则将从文档树中删除,然后重新插入新的位置
- 使用insertBefore(newChild,oldChild)方法可以在已有的子节点前插入一个新的子节点
- newChild表示新插入的节点,oldChild用于指定插入节点的后边的相邻位置。
- 插入成功以后,该方法返回新插入的节点
- insertBefore可以把指定元素及其所包含的所有子节点都一起插入到指定位置中。同时会先删除移动的元素,再重新插入
- cloneNode()方法可以创建一个节点的副本
- 参数 true (深复制),复制整个节点和里面的内容zs; false (浅复制),只复制节点不要里面的内容
- 复制后的新节点,也不会被自动插入到文档,需要用到之前的方法去插入
- 由于复制的节点会包含原节点的所有特性,如果原节点中包含id属性,就会出现id属性值重叠的情况。为了避免潜在的冲突,应修改其中某个节点的id属性值
- removeChild方法可以从子节点列表中删除某个节点
- 如果删除成功,则返回被删除的节点,如果失败则返回null
- 当remove 删除节点的时候,该节点所包含的所有子节点将同时被删除
- replaceChild(new,old)方法可以将某个子节点替换为另一个
- 替换节点替换的是所有子节点以及包含的所有内容
- 其中参数new为指定的新节点,old代表被替换的节点
- 如果替换成功则返回被替换的节点,否则返回null
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>节点的操作</title>
</head>
<body>
<button id="btn1">按钮1</button>
<button id="btn2">按钮2</button>
<button id="btn3">按钮3</button>
<button id="btn4">按钮4</button>
<button id="btn5">按钮5</button>
<button id="empty">清空</button>
<ul id="box">
<li>11</li>
<li>22</li>
<li my = "hello">33</li>
<li>44</li>
</ul>
<script>
var oBox = document.getElementById("box");
var oLis = oBox.getElementsByTagName("li");
var oBtn1 = document.getElementById("btn1");
var oBtn2 = document.getElementById("btn2");
var oBtn3 = document.getElementById("btn3");
var oBtn4 = document.getElementById("btn4");
var oBtn5 = document.getElementById("btn5");
var oEmpty = document.getElementById("empty");