创建新的 HTML 元素 (节点) - appendChild()
示例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="box">
<p id="p1">这是第一段文字</p>
<p id="p2">这是第二段文字</p>
</div>
<script type="text/javascript">
var p = document.createElement('p');
var text = document.createTextNode('这是一段新的文字');
p.appendChild(text);
var element = document.getElementById('box');
element.appendChild(p);
</script>
</body>
</html>
浏览器显示效果
解析
这段代码的作用是创建<p>元素
var p = document.createElement('p');
为<p>元素创建一个新的文本节点
var text = document.createTextNode('这是一段新的文字');
将文本节点添加到<p>元素中
p.appendChild(text);
在一个已存在的元素中添加p元素
查找已存在的元素
var element = document.getElementById('box');
添加到已存在的元素中
element.appendChild(p);
创建新的 HTML 元素 (节点) - insertBefore()
以上的方法用于添加新元素到尾部
如果要将新元素添加到开始位置,可以使用insertBefore方法
示例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="box">
<p id="p1">这是第一段文字</p>
<p id="p2">这是第二段文字</p>
</div>
<script type="text/javascript">
var p = document.createElement('p');
var text = document.createTextNode('这是一段新的文字');
p.appendChild(text);
var element = document.getElementById('box');
var child = document.getElementById('p1');
element.insertBefore(p,child);
</script>
</body>
</html>
移除已存在的元素
示例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="box">
<p id="p1">这是第一段文字</p>
<p id="p2">这是第二段文字</p>
</div>
<script type="text/javascript">
var p =document.getElementById('box');
var text = document.getElementById('p1');
p.removeChild(text);
</script>
</body>
</html>
解析
<div>元素包含两个子节点
<div id="box">
<p id="p1">这是第一段文字</p>
<p id="p2">这是第二段文字</p>
</div>
查找id=‘box’的元素
var p =document.getElementById('box');
查找id=‘p1’的<p>元素
var text = document.getElementById('p1');
从父元素中移除子节点:
p.removeChild(text);
拓展
已知要查找的子元素,然后查找其父元素,再删除这个子元素(删除子元素之前必须知道父节点);
var child = document.getElementById('p1');
child.parentNode.removeChild(child);
替换HTML元素 - replaceChild()
示例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="box">
<p id="p1">这是第一段文字</p>
<p id="p2">这是第二段文字</p>
</div>
<script type="text/javascript">
var p = document.createElement('p');
var text = document.createTextNode('这是一个新的段落');
p.appendChild(text);
var para = document.getElementById('box');
var child = document.getElementById('p2');
para.replaceChild(p,child);
</script>
</body>
</html>