2016年2月17日 星期三

JavaScript 入門指南 - 認識 HTML DOM


JavaScript 入門指南 - 認識 HTML DOM



JavaScript 除了資料型態的物件 (object) 有 Boolean 、 Number 、 Sring 外,內建物件還有 Array 、 Math 、 Date 、 RegExp


除了內建的物件外,瀏覽器 (broswer) 另外會建置文建物件模型,也就是 HTML DOM ,這可讓我們可以把 HTML 的元素都當成物件來操作。 HTML DOM 主要有以下這幾個
  • document
  • element
  • event
  • window

我們之前用 document 的 write() 將字串 (string) 寫到瀏覽器中,當然, document 不只是可以做這些事情,幾乎所有跟 HTML 文件有關的都可以用 document ,例如下面的 HTML 文件,我們在 <script> 標籤中設計一個 run() 函數
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<html>
<head>
<title>docuemnt Demo</title>
<script>
function run() {
    var d = document.getElementById("display");
    d.style.color = "red";
    d.style.fontSize = "x-large";
}
</script>
</head>
<body>
<div id="display" onclick="run()">something happened</div>
</body>
</html>

我們仔細來看看 run() 的定義
5
6
7
8
9
function run() {
    var d = document.getElementById("display");
    d.style.color = "red";
    d.style.fontSize = "x-large";
}


首先, run() 的工作是利用 document 的 getElementById() 方法取得 id 屬性為 display 的 HTML 元素,這會讓變數 d 取得 <div> 的元素物件,也就是上面提到的 element 。接下來便是利用元素物件的 style 屬性重新設定文字顏色與字型尺寸。

我們可以看到真正的工作是由元素物件來做的,此例透過 document 取得元素物件,當然我們也可以直接以元素物件當參數 (parameter) 傳遞給 run() ,例如
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<html>
<head>
<title>docuemnt Demo</title>
<script>
function run(d) {
    d.style.color = "red";
    d.style.fontSize = "x-large";
}
</script>
</head>
<body>
<div id="display" onclick="run(this)">something happened</div>
</body>
</html>
這裡在呼叫 run() 時增加 this 當參數,然後 run() 的定義裡增加參數 d ,也刪掉 document 的部份,因為參數 d 就直接是元素物件了。


使用 HTML DOM 可以讓網頁有動態效果,無論是新增或刪除 HTML 元素都可由 HTML DOM 來達成,這也是學習 JavaScript 重要的一部份,在我們接下來的部份也有很多地方會用到。

Reference : http://pydoing.blogspot.tw/2012/12/JavaScript-Understanding-HTML-DOM.html

沒有留言:

張貼留言