天天看點

節點的增删改複制的操作

需求:完成節點的增删改複制的操作

 用到的方法和屬性:

  1.擷取某個節點的父節點   

  parentNode屬性

  2.擷取某個節點的子節點集合

  childNodes屬性

  3.創鍵一個新的節點

  createTextNode(節點文本内容)   document對象的方法 在某些浏覽器上相容性不是很好

  createElement(對象)     document對象的方法    例如:document.createElement("a");

  4.給某個節點對象添加屬性和屬性值

  setAttribute(屬性,屬性值);           例如:aNode.setAttribute("href","http://www.baidu.com");

  5.替換某個節點下的子節點

  replaceChild(新節點,原子節點);

  6.将某個節點添加到一個節點下

  appendChild(要添加的節點)

  7.克隆某個節點

  cloneNode()     不傳參數和傳入true參數一樣,表示克隆該節點包括子節點

<!DOCTYPE html>
<html>
  <head>
    <title>node_CURD.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css" target="_blank" rel="external nofollow" >-->
	<style type="text/css">
		div{
			border: red 1px solid;
			width: 200px;
			height: 50px;
			margin: 20px 30px;
			padding: 20px;
		}
		#div_1{
			clear:both;
			background-color:#FF3366;
		}
		#div_2{
			clear:both;
			background-color:#6699FF;
		}
		#div_3{
			clear:both;
			background-color:#CCCC99;
		}
		#div_4{
			clear:both;
			background-color:#00CC33;
		}
	</style>
	<script type="text/javascript">
		// 增加方式一:給第一個div區域添加文本
		function addText(){
			//1.擷取要添加文本内容的節點
			var div_1Node = document.getElementById("div_1");
			//2.建立一個文本節點。document對象的createTextNode(文本内容)方法。某些浏覽器不支援。
			var TextNode = document.createTextNode("這不就顯示了嗎?");
			//3.将文本節點添加到要添加的節點下appendChild(要添加的子節點執行個體)方法
			div_1Node.appendChild(TextNode);
		}
		// 增加方式二:給第一個div區域添加按鈕
		function addButton(){
			//1.擷取要添加文本内容的節點
			var div_1Node = document.getElementById("div_1");
			//2.建立一個節點。document對象的createElement()
			var aNode = document.createElement("input");
			//3.給指定對象添加屬性和屬性值
			//aNode.setAttribute("type","button");//和下面一句代碼達到的效果一樣
			aNode.type="button";
			aNode.setAttribute("value","按鈕");
			aNode.setAttribute("onclick","deleteText('div_1')");
			//4.将文本節點添加到要添加的節點下appendChild(要添加的子節點執行個體)方法
			div_1Node.appendChild(aNode);
		}
		
		// 删除方式一:删除第二個區域的節點的子節點
		function deleteText(NodeId){
			//1.擷取塊節點
			var divNode = document.getElementById(NodeId);
			//2.擷取子節點,即文本節點
			var chileNode = divNode.childNodes[0];
			//3.删除,傳入一個參數true會删除其下所有子節點
			//chileNode.removeNode();   // 此方式在火狐和谷歌下不相容
			divNode.removeChild(chileNode);
		}
		// 删除方式二:删除元素
		function deleteElement(){
			//1.擷取塊節點
			var div_2Node = document.getElementById("div_2");
			//2.擷取父節點,
			var parentNode = div_2Node.parentNode;
			//3.删除
			parentNode.removeChild(div_2Node);
		}
		
		// 修改
		function UpdateText(){
			//1擷取要修改字元的區域的節點
			var div_3Node = document.getElementById("div_3");
			//2.擷取第一步中的子節點集合,指定到要修改的節點
			var childNode = div_3Node.childNodes[0];
			//3.建立一個文本節點
			var newNode = document.createTextNode("哈哈,我把你替換了.");
			//4.用3步建立的節點替換2步驟中的節點
			//childNode.replaceNode(newNode);//此方式在火狐和谷歌下不相容
			div_3Node.replaceChild(newNode,childNode);
		}
		//克隆
		function copyNode(){
			//1.擷取第四區域節點
			var div_1Node = document.getElementById("div_1");
			//2.擷取第一區域節點
			var div_4Node = document.getElementById("div_4");
			//3.獲得一個新節點通過克隆第四節點
			var newNode = div_4Node.cloneNode();//傳入參數true表示克隆整個節點,包括子節點.預設是true參數的結果
			//4.将步驟3的新節點替換掉原來的第一節點
			div_1Node.parentNode.replaceChild(newNode,div_1Node);
		}
	</script>
  </head>
  
  <body>
	<div id="div_1"></div>
	
	<div id="div_2">這裡是第二個區域</div>
	
	<div id="div_3">這裡是第三個區域</div>
	
	<div id="div_4">這裡是第四個區域</div>
	 <hr />
	 <font size="12px">增:</font>
	 <input type="button" value="給第一個區域增加文本" οnclick="addText()" /> 
	 <input type="button" value="給第一個區域增加一個按鈕" οnclick="addButton()" /> 
	 <hr />
	 <font size="12px">删:</font>
	 <input type="button" value="删除第二區域的文本内容" οnclick="deleteText('div_2')" /> 
	 <input type="button" value="删除第二個區域" οnclick="deleteElement()" /> 
	 <hr />
	 <font size="12px">改:</font>
	 <input type="button" value="修改第三個區域中的内容" οnclick="UpdateText()" /> 
	 <hr />
	 <font size="12px">克隆:</font>
	 <input type="button" value="将第四區域克隆到第一區域" οnclick="copyNode()" /> 
  </body>
</html>
           

繼續閱讀