「DOM API 定義了 JavaScript 存取、改變 HTML 架構、內容、樣式的方法,甚至對節點綁定的事件。」
前一篇的內容,是關於 JavaScript 如何「存取」 HTML 節點的方法;這一篇來談談 JavaScript 用甚麼方法改變 HTML 架構、內容與樣式。
JavaScript 改變 HTML 的方法有以下步驟:
- 新增元素節點或文字節點
- 利用 appendChild()、 insertBefore 或 replaceChild() 等方法將新增的元素節點與文字節點插入指定的位置。
新增元素節點或文字節點
document.createElement(tagName)
document.createElement(tagName) 可以幫我們建立一個新的元素節點,但是你利用appendChild() 等方法把它加入指定位置之後才會在網頁上顯示出來。
同時也可針對我們新建立的<li>
,指定id及class名稱。
document.createTextNode()
我們也可以利用 document.createTextNode() 建立文字節點,在括號中放入想要新增的字串。跟document.createElement(tagName) 一樣,要用 appendChild() 等方法把新增的文字節點插入指定的位置後面,網頁上才會顯現出來。
document.write
document.write() 應該是JavaScript 的新手最熟悉的老朋友了!
利用它不用甚麼 append 方法,馬上可以將括號中的內容輸出到網頁上,而且括號中不只可以放字串,還可以放HTML標籤。
將DOM節點新增到網頁中或是刪改節點
Node.appendChild(childNode)
Node.appendChild(childNode) 可以讓我們將新增的元素節點或文字節點新增到父容器節點的最尾端。
讓我們看看如何將 <li id="lastHero">5 中神通</li>
加入列表的最末端:
Node.insertBefore(newNode,refNode)
Node.insertBefore(newNode,refNode) 方法可以將新的節點 (newNode) ,插入到參考節點(refNode) 之前。
Node.replaceChild(newChildNode,oldChildNode)
Node.replaceChild(newChildNode,oldChildNode) 可以將原本的節點及內容更換為新的節點及內容。
Node.removeNode(childNode)
那要如何刪除元素節點呢?利用 Node.removeNode(childNode) 就可以辦到!但是這個方法只能刪除單一網頁節點。
以上就是改變HTML架構的方法,新增一個元素節點或文字節點,將其新增、替換原本就有的節點,或是清除本來就有的節點。