10.1DOM的节点层次
来源:互联网 发布:九品网络电视官方下载 编辑:程序博客网 时间:2024/06/02 02:19
Dom(文档对象模型)是针对HTML和XML文档的一个API(应用程序编程接口)。DOM描绘了一个层次化的节点数,允许开发人员添加、移除、和修改页面的某一部分。DOM脱胎于微软创始的DHTML,但现在他已经成为表现和操作页面的真正的跨平台、语言中立的方式。
1998年10月DOM1级规范成为了W3C的推荐标注,为基本的文档结构及查询提供了接口。本章主要讨论与浏览器中的HTML页面相关的DOM1级的特性和应用,以及JavaScript对DOM1级的实现。IE,Firefox,Safari、Chrome都非常完善实现了DOM。
DOM可以将任何HTML或XML文档描绘成一个由多层节点构成的结构。节点分为几种不同的类型,每种类型分别表示文档中不同的信息及标记。每一个节点都拥有各自的特点、数据和方法,另外也与其他节点存在某种关系。节点之间的关系构成了层次,而所有页面标记则表现为一个以特定节点为跟节点的树形结构。以下面的HTML为例:
<html>
<head>
<title>Sample page</title>
</head>
<body>
<p>Hello World</p>
</body>
<html>
可以将这个简单的HTML文档表示为一个层次结构。
文档节点是每个文档的根节点。在这个例子中,文档节点只有一个子节点,及html元素,我们称之为文档元素。文档元素是文档的最外层元素,文档中其他所有元素都包含在文档元素中。每个文档只能有一个文档元素。在HTML页面中,文档元素始终都是html元素。在XML中,没有预定义的元素,因为任何元素都可能成为文档元素。
每一段标记都可以通过树中的一个节点来表示:HTML元素通过元素节点表示,特性(attribute)通过特性节点表示,文档类型通过文档类型表示,而注释则通过注释节点表示。总共有12种节点类型,这些类型都继承自一个基类型。
10.1.1 Node类型
DOM1级定义了一个Node接口,该接口将由DOM中的所有节点类型实现,这个Node接口在JavaScript中是作为Node类型的实现,除了IE之外,在其他所有浏览器中都可以访问到这个类型。JavaScript中的所有节点类型都继承自Node类型,因此所有节点类型都共享着相同的基本属性和方法。
每个节点都有一个nodeType属性,用于表明节点的类型。节点类型由在Node类型中定义的下列12个数值常量来表示,任何节点类型必居其一:
通过比较了someNode.nodeType与Node.ELEMENT_NODE常量。如果二者相等,则意味着someNode确实是一个元素。然而,由于IE没有公开Node类型的构造函数,因此上面的代码在IE中会导致错误。为了确保夸浏览器兼容,最好还是将nodeType属性与数字进行比较,如下所示:
if(someNode.nodeType==1){
console.log(1);
}
并不是所有节点都受到web浏览器的支持。开发人员最常用的就是元素和文本节点。
1.nodeName和nodeValue属性
要了解节点的具体信息,可以使用nodeValue和nodeValue这两个属性。这两个属性的值完全取决于节点的类型。在使用者两个以前,最好像下面这样先检测一下节点的类型。
- 10.1DOM的节点层次
- DOM节点层次(一)
- DOM节点层次图
- 【JavaScript学习】DOM:节点层次
- 【Dom】通过递归获取节点的层次关系
- javase36补充(DOM节点的层次关系 操作节点 节点增删改查)
- JavaScript---网络编程(7)-Dom模型(节点间的层次关系,节点的增、删、改)
- Dom-docment-通过节点层次关系获取
- DOM节点层次(Node类型)
- DOM节点层次(Document类型)
- DOM对象的层次
- JavaScript DOM学习笔记1——DOM节点层次
- DOM(一)-15-(通过节点层次关系获取节点)
- 第十章:DOM(节点层次剩余节点类型介绍)
- JavaScript高级程序设计之DOM之节点层次之Node类型第10.1.1讲
- JavaScript高级程序设计之DOM之节点层次第10.1讲
- JavaScript高级程序设计之DOM之节点层次之Document类型第10.1.2讲
- JavaScript高级程序设计之DOM之节点层次之Element类型第10.1.3讲
- 从0开始学习 GitHub 系列之「03.Git 速成」----转载自stormzhang 原创文章
- 手把手玩转gitHub
- C语言 · 数组查找及替换
- ScrollView的使用详细
- 自定义控件:QQ气泡效果粘性控件的实现
- 10.1DOM的节点层次
- 斯坦福机器学习: 网易公开课系列笔记(三)——局部加权回归、logistic回归
- picasso-高级使用配置线程池
- 从0开始学习 GitHub 系列之「04.向GitHub 提交代码」----转载自stormzhang 原创文章
- Android各控件Demo下载地址
- 【dp】之 数位
- D. Artsem and Saunders
- java.net.url对象
- 从0开始学习 GitHub 系列之「05.Git 进阶」----转载自stormzhang 原创文章