DOM簡單架構

摘要:DOM簡單架構

DOM就是Document Object Modal的簡稱,主要是操控我們HTML與XML的行為,這裡以HTML來說明

 

屬性名稱

屬性功能

例子(FORM為例)

ChildNode

傳回目前元素的所有子節點

傳回DIVTABLE1TABLE2

FirstChild

傳回目前元素的第一個節點

傳回DIV

LastChild

傳回目前元素的最後一個節點

傳回TABLE2

ParentNode

傳回目前元素的父節點

傳回BODY

NextSibling

傳回與目前元素下一級的兄弟

想取得TABLE1元素,須使用FORM.FirstChild.NextSibling

PreviousSibling

傳回與目前元上一級的兄弟

想取得HEAD元素,須使用FORM.ParentNode.PreviousSibling

NodeValue

傳回目前元素的值

想取得TITLE元素的值,須使用FORM.ParentNode.PreviousSibling.FirstChild.NodeValue

 

DOM中動態方法的列表及說明(介紹大部份常用)

Document.CreateElement(tagName)

在頁面建立一個元素

Document.CreateTextNode(data)

在頁面的元素中建立其值

AppendChild(newChild)

加入一個節點到目前元素內

SetAttribute(attributename,value)

指定目前元素的屬性值

insertBefore(newChild,refChild)

在指定元素前插入新節點

removeChild(oldChild)

刪除指定的節點

removeAttribute(name)

移除目前節點的屬性值

cloneNode(bool)

複製節點

replaceChild(newChild,oldChild)

將舊節點替換成新節點

 

用幾個例子來做說明

Example 1

今天我要抓頁面上某一個元素的值,我們可以這樣寫

<html>
<head runat="server">
<script language="javascript" type="text/javascript">
    function test()
    {
        var mydom = document.getElementById("ptext");
        alert(mydom.firstChild.nodeValue);  
    }
</script>
</head>
<body>
    <form id="form1" runat="server">
<input type="button" value="test" onclick="test()" />
    <div>
        <p id="ptext">
            this is test</p>
</div>
    </form>
</body>
</html>

這邊我們利用了nodeValue來幫我們印出結果

Example 2

我們想在網頁上動態的產生元素,我們可以這樣寫

<html>
<head runat="server">
<script language="javascript" type="text/javascript">
    function dynamic()
    {
        var mydom = document.getElementById("divlist");
        var ele = document.createElement("P");
        var elevalue = document.createTextNode("this is created dynamically");
        ele.appendChild(elevalue);
        mydom.appendChild(ele);
    }
</script>
</head>
<body>
    <form id="form1" runat="server">
<input type="button" value="Dynamic Add" onclick="dynamic()" />
    <div id="divlist">
    </div>
    </form>
</body>
</html>

這邊我們利用createElement產生了<p>元素,之後利用createTextNode給予<p>元素的值

最後我們將我們動態產生的<p>元素加入網頁上

這些都是我之前常用到的,每次用的時候都要查一下書或是查google

現將其整理一下,以後我也比較好對照