只是为了更深的记住,所以自己打成文章发表,莫吐槽!
DOM即是所谓的文档对象模型。
引用对象的能力决定了代码的功能,而对象则依赖于其在文档对象模型中的层次,知道了对象在文档对象模型中所处的层次,就可以准确定位并操作对象了。
当浏览器载入HTML文档时,根据DOM定义的结构模型层次,当遇到自身支持的HTML元素对象所对应的标记时,就按HTML文档载入的书序在客户端内存中创建这些对象,并按对象创建的顺序生成对象数组。对象创建后,浏览器为这些对象提供专供的JavaScript脚本使用的可选属性及方法和处理程序,Web引用程序开发者通过这些属性、方法和处理程序就能动态操作HTML文档内容。
Window对象在启动浏览器载入文档的同时生成,与当前浏览窗口相关,包含窗口的最小最大化、尺寸大小等属性,同时具有关闭窗口、创建新窗口等方法。
frames[]:表示Window页面中的框架数组对象,每个框架都包含一个window对象
location对象以URL的形式载入当前窗口,并保存正在浏览的文档的位置及其构成信息,如协议、主机名、端口、路径、URL的查询字符串部分等。
document对象包含HTML文档中的HTML标记和构成文档内容的文本的对象,客户端浏览器中每个载入的HTML文档都有一个document对象,在多框架文档中,框架集的每个成员都包含一个document对象,按照对象包含的层次进行访问。
history:包含当前窗口的历史列表对象,用户与跟窗口中曾经使用过的URL,包括其历史表的长度、历史表中上一个URL和下一个URL等信息。
navigator:包含当前浏览器的相关信息的对象,包括处理当前文档的客户端浏览器的版本号、商标等只读信息,防止脚本对客户端浏览器相关信息的恶意访问和篡改。
screen:包含当前浏览器运行的物理环境信息的对象,包含如监视器的有效像素数等信息。
通过对象位置访问文档对象:
document.forms[0].elements[0]; 访问body里第一个form表单的第一个元素
document.forms[0].elements[0].value; 获取第一个元素的值
方法简单明了,但是对HTML文档的结构过于依赖,给脚本代码维护带来了很大的难度
通过name属性访问文档对象
document.MyForm1.MyTextOfForm1.value; 访问一个名为MyFrom1表单中名为MyTextOfForm1文本框的值
document.MyForm2.MyTextOfForm2.value;
通过id属性访问文档对象
currentElement=document.getElementById('p1'); 获取id名为p1的值
通过联合数组访问文档对象
在HTML被浏览器解释执行的同时,同类型的元素将构成某个联合数组的元素,可通过一个整数或者字符串为索引参数,完全定位该对象。一般情况下使用HTML文档中分配给标记元素的id属性name属性作为参数。
document.forms["MyForm1"].elements["MyTextOfForm1"];
在IE中提供专门item()方法作为联合数组的索引,该方法将对象集中名为参数字符串的对象从对象集中取出,如上面例子可用:document.forms.item("MyForm1")实现
DOM将文档看成一棵节点树。
节点分为:元素节点(element node)、文本节点(text node)、属性节点(attribute node)。
对象属性:nodeName、nodeValue、nodeType、parentNode、childNodes、firstChild(对标记的子节点集合中第一个节点的引用,如果存在的话)、lastChild、previousSibling(对同属一个父节点的前一个兄弟节点的引用)、nextSibling、Attributes(返回当前节点(标记)属性的列表)、ownerDocument(指向包含节点(标记)的HTML document对象
object.getAttribute(attribute) :获取特定属性如title、font-size的取值,getElementById("p").getAttribute("title")
object.setAttribute(attribute) :设置特定属性的取值
object.removeAttribute(attribute) :删除任意元素节点指定的属性