JavaScript Dom
DOM是Document Object Model文档对象模型的缩写。根据W3C DOM规范(http://www.w3.org/DOM/),DOM是一种与浏览器,平台,语言无关的接口,使得你可以访问页面其他的标准组件。简单理解,DOM解决了Netscape的Javascript和Microsoft的Jscript之间的冲突,给予web设计师和开发者一个标准的方法,让他们来访问他们站点中的数据、脚本和表现层对像。
考虑一个html文件:
<html>
<head><title>测试</title></head>
<body>
<p>测试</p>
</body>
</html>
1. 访问节点:
访问html元素:var oHtml=document.documentElement;
获取head元素:var oHead=oHtml.firstChild;
获取body元素:var oBody=oHtml.lastChild; 或者 var oBody=document.body;
也可以通过childNodes来做同样的工作:
var oHead=oHtml.childNodes[0] 或者 oHtml.childNodes.item(0);
var oBody=oHtml.childNodes[1] 或者 oHtml.childNodes.item(1);
判断节点间关系:
2. 检测节点类型:
通过节点的nodeType属性来检验节点类型:
alert(document.nodeType); //输出9
IE6不支持,不过你可以自定义一个JS对象Node。
.处理特性
处理特性可以使用标准的NameNodeMap中的方法:
getNamedItem(name) removeNamedItem(name) setNamedItem(node) item(pos)
比如:<p id=”test”>测试</p>
假设变量oP是上面的p节点的引用,我们要访问oP的id属性:
var sId=oP.attributes.getNamedItem(“id”).nodeValue;
这些方法用起来很累赘,所以DOM又定义了三个方法来简化:
getAttribute(name) ——返回名称为name的属性的值
setAttribute(name,value) ——顾名思义
removeAttribute(name) ——顾名思义
上面的例子可以改写为:
var sId=oP.getAttribute(“name”);
4.访问指定节点:
getElementByTagName(name),getElementByName(name),getElementById(id)
总结一下:
u 一份文档就是一棵节点树
u 节点分为不同的类型:元素节点、属性节点和文本节点等。
u getElementById()方法将返回一个对象,该对象对应着文档里的一个特定的元素节点。
u getElementsByTagName()方法将返回一个对象数组,它们分别对应着文档里的一个特定的元素节点。
u 这些节点中的每个都是一个对象。