010 Document 类型和 Element 类型

上一篇文章介绍了 Node 节点的各种类型,以及对节点进行增删改克隆的一些方法,本文介绍 Document 和 Element 类型,它们都是继承于 Node 类型的节点,因此拥有 Node 类型上的一些方法。

DOM1 级定义了一个 Node 接口,该接口将由 DOM 中所有的节点实现。
JavaScript 中所有的节点类型都继承自 Node 类型,因此所有节点类型都共享着相同的基本属性和方法

以上引用自 《JavaScript 高级程序设计(第三版)》

document instanceof Node // true
document.body instanceof Node // true

Document 类型

JavaScript 通过 Document 类型表示整个文档,在浏览器中有一个 HTMLDocument 类型,其继承于 Document 类型。在浏览器中存在一个 document 对象,其是 HTMLDocument 类型的一个实例。

document instanceof HTMLDocument // true
document instanceof Document // true
document instanceof Node // true
document instanceof Object // true

在 DOM 树中,一切元素(文档、元素节点、注释、文本、属性等等)都是某一个节点类型的实例,这些节点类型都继承于 Node 类型,在 HTML 文档中的一切元素都是对象。(之前对这方面没有多少认识,写 HTML 页面时并没有意识到我们加到页面上的元素都是一个个对象,看了高程后,对 HTML 页面的认识更加深刻了。)

Document 类型的特征

Document 类型有以下特征:

document.nodeType // 9
document.nodeName // "#document"
document.nodeValue // null
document.parentNode // null
document.ownerDocument // null

常用子节点和特殊集合

为了方便我们对页面上的元素进行获取,Document 类型提供了一些快捷的访问子节点和特殊集合的方式:
1.document.documentElement
改子元素指向页面上的根元素

document.documentElement === document.firstElementChild // true

2.document.body
改子元素指向
3.document.title
可以用来获取/设置页面的 Title:

document.title = "我要吃烙饼"
document.title // "我要吃烙饼"

4.document.images
该属性是一个 HTMLCollection,包含了页面中的所有

document.images.length // 5
document.getElementsByTagName("img").length // 5
document.images[1] === document.getElementsByTagName("img")[1] // true

5.document.forms
该属性是一个包含了页面上所有 form 元素的集合。
6.document.links
该属性是一个包含了页面上所有带 href 属性的 a 元素集合。
HTML:

1
2
3
4
5

获取 document.links:

document.links.length // 4

document.write() 和 document.writeln()

docuemtn.write()document.writeln() 方法用来向页面中写入内容,通常用来在页面加载过程中进行内容写入,如果页面已经加载完成了,调用 document.write()document.writeln() 方法会先清空页面中的容,再进行写入。

Element 类型

Element 用于表现 XML 或者 HTML 中的元素节点,具有以下特征:

  • nodeType 的值为 1
  • nodeName 的值为元素的标签名
  • tagName 的值也是元素的标签名,其值和 nodeName 一样
  • nodeValue 为 null

总结

HMTL 中有各式各样的元素,每种元素都是一种节点,它们是某个节点类型的实例(如 HTMLDocument,Element)等,这些节点类型都继承于 Node。
HTML 中还有其他类型的节点,如 Text、Attr、Comment 等,这些节点都有各自相应的操作方法和特性,本文主要介绍了最常用的 Document 和 Element 节点,对于其他节点类型的操作可以查阅相关的文档,在高程这本书中也有比较详细的介绍。

完。

你可能感兴趣的:(010 Document 类型和 Element 类型)