JavaScript HTML DOM

來源:互聯網
上載者:User

JS教程JavaScript HTML DOM

 

摘自http://www.w3school.com.cn

 

一HTML DOM (文件物件模型 DocumentObject Model)

HTML DOM 樹

 

通過可程式化的物件模型,JavaScript獲得了足夠的能力來建立動態 HTML。

l  JavaScript 能夠改變頁面中的所有 HTML 元素

l  JavaScript 能夠改變頁面中的所有 HTML 屬性

l  JavaScript 能夠改變頁面中的所有 CSS 樣式

l  JavaScript 能夠對頁面中的所有事件做出反應

 

二 尋找 HTML 元素

通常,通過 JavaScript,您需要操作 HTML 元素。

有三種方法來找到要操作的元素:

l  通過 id 找到 HTML 元素 

document.getElementById(id)

l  通過標籤名找到 HTML 元素 

getElementsByTagName(tagName)

l  通過類名找到 HTML 元素  (在 IE 5,6,7,8 中無效)

 

改變 HTML

1.改變 HTML 輸出資料流

document.write()

可用於直接向 HTML 輸出資料流寫內容。

提示:絕不要使用在文檔載入之後使用 document.write()。這會覆蓋該文檔。

 

2. 改變 HTML 內容

document.getElementById(id).innerHTML=newHTML

 

3. 改變 HTML 屬性

document.getElementById(id).attribute=newvalue

執行個體:

<body>

<img id="image" src="smiley.gif">

<script>

document.getElementById("image").src="landscape.jpg";

</script>

</body>

 

4.改變HTML樣式

document.getElementById(id).style.property=newstyle

<p id="p2">HelloWorld!</p>

<script>

document.getElementById("p2").style.color="blue";

document.getElementById("p2").style.background-color="#ccc";

</script>

 

5. 對 HTML 事件做出反應

HTML 事件的例子:

l  當使用者點擊滑鼠時

l  當網頁已載入時

l  當映像已載入時

l  當滑鼠移動到元素上時

l  當輸入欄位被改變時

l  當提交 HTML 表單時

l  當使用者觸發按鍵時

等等

 

當事件發生時可以執行 JavaScript;

如使用者在 HTML 元素上點擊時,可以對 HTML 的onclick事件添加 JavaScript 代碼:

onclick=JavaScript

執行個體:

<script>

function changetext(obj){obj.innerHTML="謝謝!";}

</script>

<h1onclick="changetext(this)">請點擊該文本</h1>

onclick是HTML元素的點擊事件;

 

要讓HTML元素在某個事件發生(前,時,後)作什麼(作什麼是動作),首先要先給這個HTML元素添加對應的事件(添加事件),其次再加上你要作的動作(編寫JS代碼);

 

1).事件添加方式及onclick事件

a.事件直接加在HTML元素上

<h1onclick="this.innerHTML='謝謝!'">請點擊該文本</h1>

b.事件通過JS添加在HTML元素上

<button id="myBtn ">點擊這裡</button>

<script>

document.getElementById("myBtn").onclick=function(){displayDate()};

</script>

 

2).onload 和 onunload 事件

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

onload 事件可用於檢測訪問者的瀏覽器類型和瀏覽器版本,並基於這些資訊來載入網頁的正確版本。

onload 和 onunload 事件可用於處理cookie。

 

執行個體:

<!DOCTYPE html>

<html>

<bodyonload="checkCookies()">

<script>

function checkCookies()

{

if (navigator.cookieEnabled==true)

     {

              alert("已啟用cookie")

     }

else

     {

              alert("未啟用cookie")

     }

}

</script>

<p>提示框會告訴你,瀏覽器是否已啟用cookie。</p>

</body>

</html>

 

  3) .onchange事件

         onchange 事件常結合對輸入欄位的驗證來使用,或者其它動作.

         執行個體:

         <script>

function myFunction()

{

varx=document.getElementById("fname");

x.value=x.value.toUpperCase();

}

</script>

</head>

<body>

<input type="text"id="fname" onchange="myFunction()">

<p>當您離開輸入欄位時,會觸發將輸入文本轉換為大寫的函數。</p>

  

  4).onmouseover 和 onmouseout 事件

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

         執行個體:

         <h1 onmouseover="style.color='red'"onmouseout="style.color='blue'">

例一 請把滑鼠移到這段文本上

</h1>

<divonmouseover="mOver(this)" onmouseout="mOut(this)" >

例二 把滑鼠移到上面

</div>

<script>

function mOver(obj)

{

obj.innerHTML="謝謝"

}

function mOut(obj)

{

obj.innerHTML="把滑鼠移到上面"

}

</script>

 

5). onmousedown、onmouseup 以及 onclick 事件

     onmousedown, onmouseup 以及onclick 構成了滑鼠點擊事件的所有部分;

l   首先當按下滑鼠按鍵時,會觸發 onmousedown 事件;

l   當釋放滑鼠按鍵時,會觸發 onmouseup 事件;

l   最後,當完成滑鼠點擊時,會觸發 onclick 事件.

執行個體:

<div onmousedown="mDown(this)" onmouseup="mUp(this)"onclick="mClick(this)" style="width:90px;height:20px;">請點擊這裡</div>

<script>

function mDown(obj)

{

obj.style.backgroundColor="#1ec5e5";

obj.innerHTML="請釋放滑鼠按鍵";

}

function mUp(obj)

{

obj.style.backgroundColor="green";

obj.innerHTML="請按下滑鼠按鍵";

}

function mClick(obj){ obj.innerHTML="click";}

</script>

 

6). onfocus、onblur事件

     獲得和失去焦時間點事件

     執行個體:

<script>

function focusFun(x)

     {

              x.style.background="yellow";

     }

     functionblurFun(x)

     {

              x.style.background="#fff";

     }

</script>

<input type="text" onfocus="focusFun(this)"onblur=" blurFun(this)">

 

  更多詳情:

1.http://www.w3school.com.cn/htmldom/dom_obj_event.asp

2.http://www.w3school.com.cn/tags/html_ref_eventattributes.asp

比較1和2中事件的不同,2裡沒有onerror和onresize事件

 

四 JavaScript HTML DOM 元素(節點)

1. 添加節點(HTML 元素)

         添加新HTML DOM元素,首先建立該元素(元素節點),然後向一個已存在的元素追加該元素

1)       建立HTML元素

         document.createElement(Element)

 

2)       向elementNode節點內的子項目末追加元素

(向節點的子節點列表的末尾添加新的子節點)

elementNode.appendChild(newElement)        

 

3)       向elementNode節點內某個子項目前插入元素

(在已有的子節點前插入一個新的子節點)

elementNode.insertBefore(new_node,existing_node)

new_node         要     插入新的節點

existing_node  已有節點,在此節點前插入新節點

 

4)       建立文本節點

document.createTextNode(contents)

 

執行個體:

<div id="div1">

<p id="p1">這是一個段落</p>

<p id="p2">這是另一個段落</p>

</div>

<script>

varpara=document.createElement("p");

var node=document.createTextNode("這是新段落。");

para.appendChild(node);

 

varelement=document.getElementById("div1");

element.appendChild(para);

</script>

 

2.刪除節點(HTML 元素)

如需刪除 HTML
元素,您必須首先獲得該元素的父元素

刪除子節點, 如成功,則返回被刪除的節點,否則返回 NULL。

elementNode.removeChild(node)

   elementNode父節點    node 子節點

 

         執行個體一:顯示找到父元素,再刪除子項目

              <div id="div1">

<p id="p1">這是一個段落。</p>

<p id="p2">這是另一個段落。</p>

</div>

<script>

varparent=document.getElementById("div1");

varchild=document.getElementById("p1");

parent.removeChild(child);

</script>

執行個體二:間接通過父元素刪除子項目

varchild=document.getElementById("p1");

child.parentNode.removeChild(child);


3. lastChild 屬性

lastChild 屬性返迴文檔的最後一個子節點

documentObject.lastChild

 

4. previousSibling屬性

         previousSibling屬性可返回某節點之前緊跟的節點(處於同一樹層級)

如果沒有此節點,那麼該屬性返回 null。

nodeObject.previousSibling

 

5. nodeType屬性

         nodeType
屬性返回被選節點的節點類型。

         elementNode.nodeType 

節點編號對應節點名稱

節點編號

節點名稱

節點編號

節點名稱

1

Element

7

Processing Instrucion

2

Attribute

8

Comment

3

Text

9

Document

4

CDATA

10

Document Type

5

Entity Reference

11

Document Fragment

6

Entity

12

Notation

刪除節點執行個體:

         <scripttype="text/javascript">

//檢查最後一個節點是否是元素節點

function get_lastchild(n)

{

var x=n.lastChild;

while (x.nodeType!=1)

 {

 x=x.previousSibling;

 }

return x;

}

xmlDoc=loadXMLDoc("/example/xdom/books.xml");

varlastNode=get_lastchild(xmlDoc.documentElement);

vardelNode=xmlDoc.documentElement.removeChild(lastNode);

</script>    

使用 JavaScript 訪問 HTML DOM更多詳情:

http://www.w3school.com.cn/htmldom/index.asp

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.