天天看點

JavaScript學習之旅-14( 原創 )

上一篇文章

中,主要學習了JavaScript中的幾種繼承方式。這篇文章我們主要學習DOM的相關知識。

什麼是的DOM?DOM是 Document Object Model首字母的縮寫。翻譯過來就是文檔對象模型。

JavaScript學習之旅-14( 原創 )

DOM

那麼,JavaScript 能夠改變頁面中的所有 HTML 元素、 能夠改變頁面中的所有 HTML 屬性、 能夠改變頁面中的所有 CSS 樣式 、能夠對頁面中的所有事件做出反應。

既然JavaScript能夠改變這麼多元素,那麼首先應該是找到這些控件然後在去修改指派(就跟Android一樣,必須先根據資源Id找到這個控件)。通常,JavaScript有以下三種方式去尋找元素:

A:通過 id 找到 HTML 元素

var data = document.getElementById("infoId") ; 其中infoId就是元素的id ,如果找到該元素,則該方法将以對象(在 data變量 中)的形式傳回該元素;如果未找到該元素,則 data 為 null。

B:通過标簽名找到 HTML 元素

JavaScript學習之旅-14( 原創 )

标簽尋找元素 - 1

首先,這個綠色矩形的函數具體的邏輯如下圖,這個button标簽表達的是一個按鈕,這裡的P标簽代表的是段落,這裡的div簡單了解就是一個塊級結構

JavaScript學習之旅-14( 原創 )

标簽尋找元素 - 2

C:通過類名找到 HTML 元素:

            var x=document.getElementsByClassName("className");

Ps:通過類名查找 HTML 元素在 IE 5,6,7,8 中無效。

DOM:通過JavaScript改變 HTML

A:document.write() 可用于直接向 HTML 輸出流寫内容(絕對不要在文檔加載完成之後使用 document.write()。這會覆寫該文檔。)

B:修改 HTML 内容的最簡單的方法時使用 innerHTML 屬性

如需改變 HTML 元素的内容,請使用這個文法:   

               document.getElementById(id).innerHTML =  新的 HTML

C:改變 HTML 屬性。如需改變 HTML 元素的屬性,請使用這個文法:

               document.getElementById(id).attribute = 屬性值

D:插入新的DOM,一個是使用 appendChild,把一個子節點添加到父節點的最後一個子節點

JavaScript學習之旅-14( 原創 )

比如我現在要把上面紅色矩形内容添加到箭頭指向的上面,可以這樣做:

JavaScript學習之旅-14( 原創 )

添加 - 1

JavaScript學習之旅-14( 原創 )

添加 - 2

DOM:通過JavaScript改變 CSS

        改變 HTML 樣式,

如需改變 HTML 元素的樣式,可以使用這個文法:

        document.getElementById(id).style.property    =    新樣式

DOM:通過JavaScript改變 事件

HTML 事件的例子:當使用者點選滑鼠時、網頁已加載時、圖像已加載時、滑鼠移動到元素上時、輸入字段被改變時等等。最常用的點選事件就是onClick,按鈕點選因為是最常用的事件

onload 和 onunload 事件會在使用者進入或離開頁面時被觸發。

onload 事件可用于檢測通路者的浏覽器類型和浏覽器版本,并基于這些資訊來加載網頁的正确版本、onload 和 onunload 事件可用于處理 cookie。

onchange 事件常結合對輸入字段的驗證來使用。

onmouseover 和 onmouseout 事件可用于在使用者的滑鼠移至 HTML 元素上方或移出元素時觸發函數。

onmousedown, onmouseup 以及 onclick 構成了滑鼠點選事件的所有部分。首先當點選滑鼠按鈕時,會觸發 onmousedown 事件,當釋放滑鼠按鈕時,會觸發 onmouseup 事件,最後,當完成滑鼠點選時,會觸發 onclick 事件。

本篇文章主要學習的是關于Dom的基本介紹使用。本章的基本内容就結束了。

如果這篇文章對你有幫助,希望各位看官留下寶貴的star,謝謝。

Ps:著作權歸作者所有,轉載請注明作者, 商業轉載請聯系作者獲得授權,非商業轉載請注明出處(開頭或結尾請添加轉載出處,添加原文url位址),文章請勿濫用,也希望大家尊重筆者的勞動成果。

繼續閱讀