美文网首页JavaScript
010 Document 类型和 Element 类型

010 Document 类型和 Element 类型

作者: 柏丘君 | 来源:发表于2017-08-30 11:29 被阅读11次

    上一篇文章介绍了 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
    改子元素指向页面上的根元素 <html></html>

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

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

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

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

    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:

    <a href="">1</a>
    <a href="">2</a>
    <a href="">3</a>
    <a href="">4</a>
    <a>5</a>
    

    获取 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 类型

        本文链接:https://www.haomeiwen.com/subject/juyzdxtx.html