JavaScript通过Document类型访问文档。在浏览器中,document对象是HTMLDocument(继承自 Document类型)的一个实例,表示整个HTML页面。document对象是window对象的一个属性。通过文档对象,不仅可以取得与页面有关的 信息,而且还能操作页面的外观及其底层结构。
1、文档的子节点
DOM规定Document的子节点可以是DocumentType、Element、ProcessingInstructor或Comment,但是还有两个内置的访问其子节点的快捷方式。
document.documentElement;//始终指向HTML页面中的<html>元素。
document.childNodes;//访问文档元素,例如document.childNodes[0]。
作为HTMLDocument的实例,document.body;//直接指向<body>元素。
2、文档信息
document对象还有一些标准的Document对象没有的属性。
var title = document.title;//包含<title>元素中的文本
document.title = 'new title';//修改当前页面的标题
var url = document.URL;//包含页面完整的URL
var domain = document.domain;//只包含页面的域名
var referrer = document.referrer;//保存着链接到当前页面的那个页面的URL
//所有的这些信息都存在于请求的http头部
domain属性可以设置,出于安全考虑,并非可以给domain设置任何值。如果URL包含一个子域名,例如p2p.wrox.com,之能将domain设置为wrox.com,不能将这个属性设置为URL中不包含的域。
由于跨域安全限制,来自不同域的页面无法通过JavaScript通信,而通过将每个页面的document.domain设置为相同的值,这些页面就可以互相访问对方包含的JavaScript对象了。浏览器对domain属性还有一个限制,即如果域名一开始是“松散的”,那么不能将它再设置为紧绷的,比如
document.domain = 'creprice.cn';//设置成松散型,成功
document.domain = 'www.creprice.cn';//出错
3、查找元素
document.getElementById('tagname');//返回id为tagname的元素,如果不存在,则返回null;Id区分大小写。
var div = document.getElementsByTagName('div');//返回包含零或多个元素的NodeList(类数组)
div.length;
document.getElementByName('color');//返回带有给定name特性的所有元素