1. 程式人生 > >document物件 動態的建立元素(節點)/新增元素(節點)/刪除元素(節點)

document物件 動態的建立元素(節點)/新增元素(節點)/刪除元素(節點)

主要是通過建立節點的方式來完成動態建立和動態刪除的,其具體的方法就2個document.createElement("a");document.getElementById("id1").parentNode.removeChild(document.getElementById("id1"))

  在此之前先對dom結點的知識進行加強介紹

1,

常用的dom的每個Node節點屬性和方法(加強篇)

特別提示:

html domxml dom都遵循相同dom規範的,所以他們有很多相同的方法和屬性,因此我們也可以去檢視xml domnode節點提供的方法和屬性。

在dom程式設計中,一個html

文件會被當作dom樹對待,dom會把所有的html元素對映成Node結點,於是你就可以使用node節點(物件)的屬性和方法 


下面是node節點的屬性和方法,注意createElementdocument的方法,不是node節點的方法

屬性名稱

型別

說明

nodeName

String

節點名稱

nodeValue

String

節點值

nodeType

Number

節點型別

parentNode

Node

父節點

firstChild

Node

第一個子節點

lastChild

Node

最後一個子節點

childNodes

NodeList

所有子節點

previousSibling

Node

前一個節點

nextSibling

Node

後一個節點

ownerDocument

Document

獲得該節點所屬的文件物件

attributes

Map

代表一個節點的屬性物件

方法名稱

返回值

說明

hasChildNodes()

Boolean

當前節點是否有子節點

appendChild(node)

Node

往當前節點上新增子節點

removeChild(node)

Node

刪除子節點

replaceChild(oldNode,newNode)

Node

替換子節點

insertBefore(newNode,refNode)

Node

在指定節點的前面插入新節點


node屬性方法的使用 [、後節點功能在IE8上瀏覽器未過測試]

[dom5-document.html]node屬性和方法的使用示例

<html>
<head>
<title>document示例Node節點--烏龜抓雞</title>
<script language="javascript" type="text/javascript">
<!--
function test(){
var wuguiDiv=$('wugui');
alert(wuguiDiv.nodeName+" "+wuguiDiv.nodeType+" "+wuguiDiv.nodeValue);
alert(wuguiDiv.childNodes.length+" "+wuguiDiv.nextSibling.nodeValue+" "+wuguiDiv.previousSibling.nodeValue+" "+wuguiDiv.parentNode);
}
function $(id){
return document.getElementById(id);
}
//-->
</script>
</head>
<body onkeydown="return move(event)">
<input type="button" value="Node測試" onclick="test()" /><br>
<table border="1px">
<tr>
<td></td>
<td><input type="button" value="向上走" onclick="move(this)" /></td>
<td></td>
</tr>
<tr>
<td><input type="button" value="向左走" onclick="move(this)" /></td>
<td></td>
<td><input type="button" value="向右走" onclick="move(this)" /></td>
</tr>
<tr>
<td></td>
<td><input type="button" value="向下走" onclick="move(this)" /></td>
<td></td>
</tr>
</table>
<!--把烏龜放在div中-->
<div id="wugui" style="position:absolute;left:100px;top:120px;">
<img src="1.jpg" border="1px" alt="" />
</div>
<!--雞放在div中-->
<div id="cock" style="position:absolute;left:200px;top:200px;">
<img src="2.jpg" border="1px" alt="" />
</div>
</body>
</html>

2,動態建立dom物件createElement()、parentNode.removeChild()

<html>
<head>
<title>document示例</title>
<script language="javascript" type="text/javascript">
<!--
function test1(){
//建立元素
var myElement=document.createElement("a");//createElement(??)??寫希望建立的html元素的標籤名
//給新元素新增必要的資訊
myElement.id="id1";
myElement.href="http://www.sina.com.cn";
myElement.innerText="連線到sina";
//給新元素指定位置
myElement.style.left="400px";
myElement.style.top="300px";
myElement.style.position="absolute";
//新增到document.body上
document.body.appendChild(myElement);
}
function test2(){
var myButton=document.createElement("input");
myButton.type="button";
myButton.value="這是動態建立的按鈕";
document.getElementById("div1").appendChild(myButton);
}
function test3(){
//刪除一個元素(刪除一個元素前提:必需獲得父元素)
//這是第一種刪除方法(不靈活)
document.body.removeChild(document.getElementById("id1"));
//第二種方法(推薦此方法)
//document.getElementById("id1").parentNode.removeChild(document.getElementById("id1"));
}//-->
</script>
</head>
<body>
<input type="button" onclick="test1()" value="動態建立超連結" />
<input type="button" onclick="test2()" value="動態建立按鈕" />
<input type="button" onclick="test3()" value="刪除超連結" />
<div id="div1" style="width:200px;height:400px;border:1px solid red;">div1</div>
</body>
</html>