前幾天我們已經學會讓網頁有反應(事件、輸入、點擊),
但今天要更進一步 —— 學會「直接操控畫面元素」!
DOM(Document Object Model)就是 JavaScript 與網頁之間的橋樑。
只要掌握它,就能改文字、換圖片、改顏色、改結構,真正掌控整個網頁。
1.什麼是 DOM?
DOM 是瀏覽器在讀取 HTML 後建立的一棵「文件樹」。
每個標籤都是一個節點 (node),像這樣:
<html>
└─ <body>
├─ <h1>
└─ <p>
JavaScript 就是透過這棵樹,找到節點 → 改內容、改樣式、甚至新增刪除它。
2.選取元素的方法
getElementById
document.getElementById("title");
querySelector(最推薦)
document.querySelector("#title"); // 用 ID
document.querySelector(".btn"); // 用 class
document.querySelector("p"); // 用標籤
querySelectorAll
可選取多個元素,會回傳「陣列型態」集合。
document.querySelectorAll("li");
3.改內容
(1) 文字內容
<h2 id="title">原本的文字</h2>
<script>
const title = document.getElementById("title");
title.textContent = "文字被改成這樣啦!😎";
</script>
(2) HTML 結構
<p id="info"></p>
<script>
const info = document.getElementById("info");
info.innerHTML = "<strong>這段字是粗體的!</strong>";
</script>
4.改樣式
<h2 id="title">改顏色試試看 🎨</h2>
<script>
const title = document.getElementById("title");
title.style.color = "deepskyblue";
title.style.fontSize = "28px";
title.style.background = "lightyellow";
</script>
5.切換 class(最常見的互動手法)
<style>
.highlight {
color: white;
background: tomato;
padding: 5px 10px;
border-radius: 8px;
}
</style>
<h2 id="text">點我切換樣式</h2>
<script>
const text = document.getElementById("text");
text.addEventListener("click", () => {
text.classList.toggle("highlight");
});
</script>
6.新增與刪除元素
(1) 新增
<ul id="list"></ul>
<script>
const list = document.getElementById("list");
const newItem = document.createElement("li");
newItem.textContent = "這是新項目 🆕";
list.appendChild(newItem);
</script>
(2) 刪除
newItem.remove(); // 直接移除
7.改屬性
改圖片
<img id="pic" src="img1.jpg" width="200">
<button id="change">換圖</button>
<script>
const pic = document.getElementById("pic");
const btn = document.getElementById("change");
btn.addEventListener("click", () => {
pic.src = pic.src.includes("img1.jpg") ? "img2.jpg" : "img1.jpg";
});
</script>
今日實戰
(1) 點擊新增留言
<input id="message" placeholder="輸入留言">
<button id="addBtn">新增留言</button>
<ul id="list"></ul>
<script>
const input = document.getElementById("message");
const addBtn = document.getElementById("addBtn");
const list = document.getElementById("list");
addBtn.addEventListener("click", () => {
if (input.value === "") return;
const li = document.createElement("li");
li.textContent = input.value;
list.appendChild(li);
input.value = "";
});
</script>
(2) 切換主題按鈕
<style>
body.dark {
background: #111;
color: white;
transition: 0.3s;
}
</style>
<button id="themeBtn">切換主題 🌙</button>
<script>
const themeBtn = document.getElementById("themeBtn");
themeBtn.addEventListener("click", () => {
document.body.classList.toggle("dark");
themeBtn.textContent =
document.body.classList.contains("dark") ? "切換主題 ☀️" : "切換主題 🌙";
});
</script>
今日小結
學會了 DOM (文件物件模型) 的概念
可以「選取、改變、新增、刪除」元素
會用 .textContent、.innerHTML、.style、.classList.toggle()
完成了互動小作品(留言板 + 主題切換)
**🎉 恭喜你!
•HTML(結構)✔
•CSS(樣式)✔
•JS(互動)✔
三劍客正式集結 🥳
從今天起,你已經能打造出「會動、能互動」的完整網頁了!
我們來複習一下本週的 JavaScript 學習內容吧!
Day 15:JS 初體驗
認識 JavaScript、了解它的用途、三種加入方式(內嵌、外部檔案、defer)、輸出到網頁或 Console
Day 16:變數與資料型態
使用 let、const 宣告變數,理解數字、字串、布林、null、undefined,學習字串拼接與樣板字串
Day 17:條件判斷 if/else
依條件執行不同結果,學會 if / else / else if、比較與邏輯運算,製作成績評分與登入驗證
Day 18:迴圈 for/while
學會 for、while、do…while 迴圈重複執行任務,搭配 break、continue 控制流程,製作九九乘法表
Day 19:函式 function
將重複程式打包成可呼叫的函式,學會參數、回傳值、箭頭函式,實作 BMI 計算與平方函式
Day 20:事件 Event
理解使用者行為(點擊、輸入、滑鼠移入)如何觸發事件,使用 addEventListener() 建立互動效果
Day 21:DOM 操作
掌握 JavaScript 操控畫面的能力,選取元素、改文字與樣式、新增刪除節點,完成留言板與主題切換
下週預告
恭喜完成 JavaScript 入門週 🎉!
接下來進入 第四週(Day 22~Day 28)——小型網站專案實作週 🧩
我們會把這三週學過的 HTML、CSS、JS 全部整合,做出真正能用的小網站!
敬請期待 🚀