日期:2014-05-16  浏览次数:20359 次

深入浅出JavaScript (六)分析DOM模型

         DOM是一种结构化对象模型提供了标签对象通用的访问方式,将HTML文件视为一个节点树,每一个标签和文字都是一个节点,可以访问每个节点和节点内容。

         这样我们就可以通过DOM提供给的方法、接口来访问HTML内容,而不需要单个元素一个一个的查询。

         优点:

         跨平台和程序语言的程序接口

                 DOM提供应用程序环境的一种标准程序处理接口,这是一种HTML和XML文件的标准API,可以再网络上交换数据。

         支持多种文件格式

         支持多种程序语言

          DOM提供了几个属性可以容易的访问树结构中的节点。如下

                以parentNode、childNodes、previousSibling为例进行说明,看下面代码

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="javascript">
	//显示当前节点的父节点
	function showParentNode()
	{
		//获得当前节点对象
		var myObj=document.getElementById("lilongsheng");
		//查找父节点
		var parent=myObj.parentNode;
		//显示父节点名
		alert(parent.nodeName);
	}
	//显示孩子节点列表,返回类型为NodeList
	function showchild()
	{
		//获得当前节点对象
		var myObj=document.getElementById("lilongsheng");
		//查找节点的子节点列表
		var child=myObj.childNodes;
		//循环显示子节点列表
		for (var i=0;i<child.length;i++)
		{
			alert(child[i].nodeName);
		}
	}
	//显示下一个兄弟节点
	function showSibling()
	{
		//获得当前节点对象
		var myObj=document.getElementById("lilongsheng");
		//查找下一个兄弟节点
		var sibling=myObj.nextSibling;
		//显示
		alert(sibling.nodeName);
	}
</script>
</head>
<body>
	<form>
		<ul id="lilong">
			<li id="lilongsheng">
				<a href="#" >标题1</a>
				<a href="#" >标题2</a>
				<a href="#" >标题3</a>
				<a href="#" >标题4</a>
			</li>
			<hr/>
		</ul>
		<input type="button" onclick="showParentNode()" value="获取父标签名" />
		<input type="button" onclick="showchild()" value="获取子标签名" />
		<input type="button" onclick="showSibling()" value="获取兄弟标签名" />
	</form>
</body>
</html>

               分别单击三个单选按钮,可以获得结果如下:


            

                   分别获得当前标签的父标签、子标签、兄弟标签,其余方法不再累述,可以使用这些简单的方法实现对DOM文档模型里的元素进行增、删、改、查,操作DOM文档。

           待续……