我们通过全局变量document访问Document对象,它是浏览器为我们创建的关键对象之一。Document对象向你提供文档的整体信息,并让你能够访问模型里的各个对象。要了解DOM,最好的方法是从一个例子开始。
获取正在处理的HTML文档信息:
document.writeln(document.UTL);
文档中选择元素:
var elems = document.getElementsByTagName("p");
1、使用document元数据
1.1 获取文档信息
理解怪异模式
compatMode属性告诉你浏览器是如何处理文档内容的。现如今存在着大量的非标准HTML,浏览器则试图显示出这类网页,哪怕它们并不遵循HTML规范。一些这样的内容依赖于浏览器的独特功能,而这些功能来源于浏览器依靠自身特点(而非遵循标准)进行竞争的年代。
compatMode属性的值:
值 | 说明 |
---|---|
CSS1Compat | 此文档遵循某个有效的HTML规范(但不必是HTML5,有效的HTML4文档也会返回这个值) |
BackCompat | 此文档含有非标准的功能,已触发怪异模式 |
1.2 使用Location对象
document.location属性返回一个Location对象,这个对象给你提供了细粒度的文档地址信息,也允许你导航到其他文档上。
document.location属性最简单的用途是获取当前文档的地址信息
document.writeln(document.location.protocol);
search属性会返回URL的查询字符串部分,hash属性返回的则是URL片段。
assign和replace方法的区别在于,replace会把当前文档从浏览器历史中移除,这就意味着如果用户点击了后退按钮,浏览器就会跳过当前文档,就像它从未访问过该文档一样。
1.3 读取和写入cookie
cookie属性让你可以读取、添加和更新文档所关联的cookie。
document.cookie = ""
可以添加到cookie的额外字段:
项 | 说明 |
---|---|
path=
| 设置cookie关联的路径,如果没有指定则默认使用当前文档的路径 |
domain= | 设置cookie关联的域名,如果没有指定则默认使用当前文档的域名 |
max-age= | 设置cookie的有效期,以秒的形式从它创建之时起开始计算 |
expires= | 设置cookie的有效期,用的是GMT格式的日期 |
secure | 只有在安全(HTTPS)连接时才会发送cookic |
document.cookie="MyCookie=MyValue;max-age=10";
1.4 理解就绪状态
document.readyState属性向你提供了加载和解析HTML文档过程中当前处于哪个阶段的信息。请记住,在默认情况下浏览器会在遇到文档里的script元素时立即开始执行脚本,但你可以使用defer属性推迟脚本的执行。
readyState属性的返回的值:
值 | 说明 |
---|---|
loading | 浏览器正在加载和处理此文档 |
interactive | 文档已被解析,但浏览器还在加载其中链接的资源(图像和媒体文件等) |
complete | 文档已被解析,所有的资源也已加载完毕 |
1.5 获取DOM的实现情况
document.implementation属性向你提供了浏览器对DOM功能的实现信息。这个属性返回一个DOMImplementation对象,它包含一个你会感兴趣的方法: hasFeature方法。可以使用这个方法来判断哪些DOM功能已实现。
2、获取HTML元素对象
2.1 使用属性获取元素对象
Document对象为你提供了一组属性,它们会返回代表文档中特定元素或元素类型的对象。
elems.id
2.2 使用数组标记获取已命名元素
还可以使用数组风格的标记来获取代表某个已命名元素( named element)的对象。它指的是带有id或name属性值的元素。
elems["apples"]
2.3 搜索元素
Document对象定义了许多方法,可以用它们搜索文档里的元素。
getElementById(id)等方法
2.4 合并进行链式搜索
document.getElementById("tab").getElementsByTagName("span");
3、DOM树里导航
childNodes,firstChild,hasChildNodes,lastChild,nextSibling,parentNode,previousSbiling方法