[快速入门前端 59] JavaScript:DOM (1) Document Object Model 简介

DOM 是什么?

到目前为止我们大约花了二十多个篇幅来介绍 JavaScript 的基本用法,可能有人会想说讲了这么多,JavaScript 跟画面到底有什么关係? 又是怎么控制画面的呢?
答案是靠 DOM!
DOM 的全名是 Document Object Model,也就是「文件物件模型」,它以 HTML 档案中的 document 为起点,将前端的各个 Element,包括 <htmle><div>、文字内容等解析为 Node (节点) 为一个庞大的树状结构,而 JavaScript 就是透过 DOM 来操控网页中指定的元素,让我们的网页「动起来」。

DOM 的树状结构 (以简单的 HTML 结构为例)

<!DOCTYPE html><html lang="en"><head>    <title>My Sample</title></head><body>    <h1>Content Start</h1>    <a href="https://google.com">Go to google</a></body></html>

http://img2.58codes.com/2024/20158509Zb4TElthHk.jpg

Node 节点

Node 节点 是构成 HTML 文档的基本单元,也是树状图中每一个方形,通常分为四种:DocumentElementTextElement

Document
Doment 是指目前所在页面的整份 HTML 档,是所有的元素和节点的开头。Element
文件内每个标籤都是一个 Element,例如範例的 <head><body><h1><a> 等。Text
指被 Element 包裹的文字内容,例如範例中被 <h1> 标籤包起来的 "Content Start"Attribute
指 HTML 标籤中的属性,例如 <a>href、标籤的 id 属性等等

Node Properties 节点属性

Node Properties 故名思义是指节点中的属性,在我们获取到节点后,可以利用 Node.属性 来获取该节点的名称、类型、值等资料。

nodeNamenodeTypenodeValueDocument#document9nullElement标籤名称1nullText#text3属性值Attribute属性名称2文字内容

範例:

document.nodeType; // 9document.nodeName; // '#document'

Element Properties 元素属性

针对 HTML 的 element 还有更多属性可以让我们获资讯,利如 tagName 可以获得标籤名称、innerHTMlinnerText 可以获得元素节点中的 HTML code 和文字内容... 等等,不过要注意的是这些 properties 只有 Element 类型的节点才有。
话不多说,现在就来看看有哪些常用的 element properties 吧!
以下面 HTMl 结构为例:

<body>    <div><a>Go to google</a></div></body>
Element.tagName
回传该元素的标籤名称。
document.querySelector('div').tagName; // 'DIV'
Element.innerHTML
回传该元素内的所有 HTMl code。
document.querySelector('div').innerHTML; // '<a>Go to google</a>'
Element.innerText
回传该元素内的文字内容。
document.querySelector('div').innerText; // 'Go to google'
Element.outerHTML
回传该元素本身及其内部的所有 HTMl code。
document.querySelector('div').outerHTML; // '<div><a>Go to google</a></div>'

上一篇:[快速入门前端 58] JavaScript:常见的内建函式 (2) Number 和 String 相关
下一篇:[快速入门前端 60] JavaScript:DOM (2) 如何获取元素节点
系列文章列表:[快速入门前端] 系列文章索引列表


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章