访问相关节点

 

要访问<html/>元素(你应该明白这是该文件的document元素),你可以使用documentdocumentElement特性:

var oHtml = document.documentElement;

由于IE 5.5中的DOM实现的错误,document.documentElement会返回<body/>元素。IE 6.0已经修复了这个错误。

现在变量oHtml包含一个表示<html/>HTMLElement对象。如果你想取得<head/><body/>元素,下面的可以实现:

也可以使用childNodes特性来完成同样的工作。只需把它当成普通的JavaScript Array,使用方括号标记:

你还可以通过使用childNodes.length特性来获取子节点的数量:

注意方括号标记其实是NodeListJavaScript中的简便实现。实际上正式的从childNodes列表中获取子节点的方法是使用item()方法:

HTML DOM页定义了document.body作为指向<body/>元素的指针:

有了oHtmloHeadoBody这三个变量,就可以先尝试确定它们之间的关系:

这一小段代码测试并验证了oBodyoHeadparentNode特性都是指向oHtml变量,同时使用previousSiblingnextSibling特性来建立它们之间的关系。最后一行确认了oHeadownerDocument特性事实上是指向该文档。

不同浏览器在判断何为Text节点上存在一些差异。某些浏览器,如Mozilla,认为元素之间的空白都是Text节点;而另一些浏览器,如IE,会全部忽略这些空白。因为使用Mozilla方式很难确定哪些空白是Text节点,本书将采用IE的方式。

posted @ 2007-01-08 18:12  子午  阅读(198)  评论(0编辑  收藏  举报