都是圈内人士了,咱就直接进入主题吧.... ^_^ ^_^
Node对象有insertBefore(newChild, 被引用Child)和appendChild(newChild)两个方法用来插入结点。
appendChild(newChild)方法作为某结点的方法来调用,在该结点的子结点列表的结尾添加一个newChild.
insertBefore(newChild, 被引用的0Child)制定在 被引用Child之间插入一个newChild. 在实际应用中,需要访问某个结点的双亲结点,已获得insertBefore()方法必要的信息。
<html>
<head>
<title>结点插入与追加</title>
<script type="text/javascript">
<!--
function makeNode(str) //创建结点函数
{
var newParagraph = document.createElement("p"); //创建新元素p
var newText = document.createTextNode(str); //创建新文本
newParagraph.appendChild(newText); //追加一个新的子结点
return newParagraph; //返回该段落
}
function appendBefore(nodeId, str) //前插入函数
{
var node = document.getElementById(nodeId);
var newNode = makeNode(str);
if(node.parentNode) //如果存在双亲结点
{
node.parentNode.insertBefore(newNode, node); //在当前节结点前插入新结点
}
}
function insertWithin(nodeId, str) //中插入函数
{
var node = document.getElementById(nodeId);
var newNode = makeNode(str);
node.appendChild(newNode); //追加一个新的结点
}
function appendAfter(nodeId, str) //后插入函数
{
var node = document.getElementById(nodeId);
var newNode = makeNode(str);
if(node.parentNode) //如果存在双亲结点
{
if(node.nextSibling) //如果存在下一子结点
{
//前插入子结点
node.parentNode.insertBefore(newNode, node.nextSibling);
}else //如果没有下一子结点
//后追加子结点
node.parentNode.appendChild(newNode);
}
}
//-->
</script>
</head>
<body>
<h1><center> DOM插入与追加</center></h1>
<hr>
<div style="background-clolor: #66ff00;">
<div id="innerDiv" style="background-color:#ffcc00;"></div>
</div>
<hr>
<form id="form1" name="form1" action="#" method="get">
<input type="text" id="field1" name="field1">
<input type="button" value="前插入" οnclick="appendBefore('innerDiv', document.form1.field1.value);">
<input type="button" value="中插入" οnclick="insertWithin('innerDiv', document.form1.field1.value);">
<input type="button" value="后插入" οnclick="appendAfter('innerDiv', document.form1.field1.value);">
</form>
</body>
</html>