12_JavaScript_DOM编程_插入节点及自定义的 insertAfter 方法

本节我们主要学习如何插入节点……

我们可以插入一个节点到某个节点的前面:

但是可以拓展到写一个插入到节点后面的函数:

dom-10.html

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>插入节点</title>

<script type="text/javascript">

//插入节点
window.onload = function(){

var cityNode = document.getElementById("city");
var gameNode = document.getElementById("game");

var bjNode = document.getElementById("bj");
var rlNode = document.getElementById("rl");
var seNode = document.getElementById("se");

//插入到之前的节点
/* alert("test");
//该方法除了插入节点之外,还有移动的功能
cityNode.insertBefore(rlNode, bjNode);
//cityNode.insertBefore(newElt, before)
//如果需要插入节点到某个节点之后 */

//插入到之后的节点
alert("1");
insertAfter(rlNode, seNode);

}

function insertAfter(newNode, oldNode){
//判断是否为最后一个节点:
var parentNode = oldNode.parentElement;
if(parentNode){//如果父节点存在的话
//alert("test");
lastNode = parentNode.lastChild;

if(oldNode == lastNode){
parentNode.appendChild(newNode);
}else{
nextNode = oldNode.nextSibling;
parentNode.insertBefore(newNode, nextNode);
}
}
}

</script>

</head>
<body>
<p>你喜欢哪个城市?</p>
<ul id="city"><li id="bj" name="BeiJing">北京</li>
<li>上海</li>
<li>东京</li>
<li id="se">首尔</li>
</ul>

<br><br>
<p>你喜欢哪款单机游戏?</p>
<ul id="game">
<li id="rl">红警</li>
<li>实况</li>
<li>极品飞车</li>
<li>魔兽</li>
</ul>

<br><br>
gender:
<input type="radio" name="gender" value="male"/>Male
<input type="radio" name="gender" value="female"/>Female

<br><br>
name: <input type="text" name="username" value="atguigu"/>

</body>
</html>