Javascript操纵DOM之节点添加和删除
              
            
             时间:2014-11-02 21:12   来源:未知   点击:
              
           次
            
	      上面我们已经了解了DOM的相关知识,知道了可以使用Javascript修改DOM树结构的任何地方。今天武汉网站建设公司分享一下如何添加节点及删除节点。先从简单的说起,在文档的末尾追加一个节点。
	       在文档中添加节点关键使用js中以下几种方法:createTextNode()、createElement()、appendChild()及getElementsByTagName()。其中最核心的就前面三种方法。现在讲这些方法逐一说明:
	createTextNode()  创建一个新的文本节点;
	createElement()   创建一个新的元素节点;
	appendChild()     将一个元素节点添加到另一个元素节点中成为其子节点
	getElementsByTagName()  通过TagName(标签名称)来获得元素,一个DOCUMENT中当然会有相同的标签,所以这个方法也是取得一个数组。如果想索引某个元素可以通过[]和数字的组合得到。比如,您想得到页面中第一个p标签,可以通过以下的方式得到getElementsByTagName("p")[0]。
	       下面我们看一个具体的实例.这个实例要达到的效果是,让用户在页面的文本框输入一些内容,并点击提交按钮后,然后将一个新段落添加到页面中。
	
	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
	<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
	<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
	<title>adding Node</title>
	</head>
	<script>
	   window.onload=init();
	   function init(){
	      document.getElementsByTagName("form")[0].onsubmit = function(){return addNode();}
	   function addNode(){
	    var inText = document.getElementById("textArea").value;    //得到textarea输入的数据
	    var newText = document.createTextNode("inText");           //创建一个文本节点,它将接收,textarea输入的数据
	   
	    var newGraf =document.createElement("p");                 //创建一个元素节点,
	    newGraf.appendChild(newText);                             //为了将新文本节点添加到新的段落中,必须调用appendChild()方法.将newText传递给它时,同时将文本节点放入到段落中.
	   
	    var docBody = document.getElementsByTagName("body")[0];   //通过getElementsByTagName("body")[0]方法查明body的位置.
	    docBody.appendChild(newGraf);                             //将newGraf(刚创建的元素标签)追加到docBody(页面)中,从而将用户输入的文本信息,显示到页面上
	  }
	   }
	</script>
	<body>
	<form  action="#">
	    <textarea name="textArea" rows="5" cols="30"></textarea>
	    <br />
	    <input type="submit" value="提交" />
	</form>
	</body>
	</html>
	         就是在页面上添加内容的思路及方法。说完添加内容,下面我们看看怎么删除页面内容。删除DOM节点的核心方法:removeChild(),方法与上面讲的appendChild()刚好相反。通俗说一个是添加。一个是删除。以下我们提供删除页面标签的源码供您参考
	function delNode()
	           {
	   var allGrafs = document.getElementsByTagName("p");      //返回页面中的所有<p>,即使一个数组.
	   
	   if(allGrafs.length>1){                                 //判断该数组的长度.其表示只有当数组有个元素才执行删除.也即是页面至少有个p标签才删除.
	    var lastGraf = allGrafs.item(allGrafs.length-1);   //找到最后一个p标签
	    var docBody = document.getElementsByTagName("body")[0];
	    docBody.removeChild(lastGraf);                     //通过removeChild()删除页面最后一个p标签
	   }
	   else{
	    alert("nothing to remove");
	   }
	   
	   return false;
	     }
       以上内容就是js操纵DOM添加、删除节点的基本方法。现在我们只能将节点添加到最后,或从最后删除节点。在实现的使用中,一般不可能仅在页面最后操纵节点。在下文我们将继续分享,如何删除特定节点、怎么插入节点的相关知识。