在前幾天,我們學會了 JavaScript 的變數、條件判斷以及收納資料的陣列與物件。但此時你心裡可能會冒出一個大問號:「這些變數跟資料,到底要怎麼跟我們的網頁畫面(HTML/CSS)產生連結啊?」
今天,我們就要來解開前端互動的終極秘密武器——DOM(Document Object Model,文件物件模型)!
當瀏覽器把我們的 HTML 檔案讀進來時,它會在記憶體裡面把每一個標籤(<div>、<h1>、<p>)轉換成一個個像樹枝一樣的物件。這整棵樹,就叫做 DOM。
如果用設計師的觀點來理解:
想要操控畫面,第一步當然是「選中目標」。在 JS 裡,我們最常用這兩個超強的抓取指令:
document.querySelector()(抓取第一個符合的元素)const myTitle = document.querySelector('h1');(抓取網頁的第一個標題)。document.querySelectorAll()(抓取所有符合的元素)當你用 querySelector 把元素抓到變數裡後,就可以為所欲為地修改它的屬性或文字:
// 1. 先把網頁上的標題抓下來
const mainTitle = document.querySelector('h1');
// 2. 用 JavaScript 動態把上面的文字改掉!
mainTitle.textContent = "孫小豬的 30 天前端修煉已完成!";
// 3. 甚至還可以動態幫它加上 CSS 樣式
mainTitle.style.color = "#ff6b6b";
mainTitle.style.fontSize = "32px";
本來寫死的標題,現在只要透過 JavaScript 一句話,網頁上的文字跟顏色就直接變了!
今天我們認識了 DOM 樹狀結構,學會了怎麼用 JavaScript 去「抓取」並「修改」網頁上的 HTML 元素。
既然我們已經學會怎麼動態操控畫面了,明天我們要來進一步解鎖:當使用者點擊滑鼠、輸入文字時,網頁該怎麼即時做出反應?——也就是「事件監聽(Event Listener)」!