用 const 記住 DOM 元素
不是背名詞,而是能在練習頁操作、指出程式位置並解釋畫面結果。
CHAPTER 15 · 180 MINUTES
HTML 只能先寫死文字;要讓使用者輸入資料後改變畫面,必須分清楚資料、處理步驟、事件與 DOM 各自責任。
LEARNING GOALS
不是背名詞,而是能在練習頁操作、指出程式位置並解釋畫面結果。
不是背名詞,而是能在練習頁操作、指出程式位置並解釋畫面結果。
不是背名詞,而是能在練習頁操作、指出程式位置並解釋畫面結果。
PROBLEM & ANALOGY
變數像貼標籤的收納盒,函數像固定操作流程,事件像門鈴,DOM 則是可被找到與更新的房間物件。
本章要解決:HTML 只能先寫死文字;要讓使用者輸入資料後改變畫面,必須分清楚資料、處理步驟、事件與 DOM 各自責任。
接住上一章:第 14 章已建立版本紀錄的作品集。
合回共同作品:本章成果必須回到同一份作品集檢查,不另開一個無關小作品。
SCOPE
用 const 記住 DOM 元素;用具名函數產生問候文字;點擊後讀取 input 並更新畫面。
能辨識 value、textContent 與 classList 的責任。
不教陣列、迴圈、非同步或箭頭函數縮寫。
本章術語:const、function、event、DOM、querySelector、textContent。遇到英文先回到畫面責任,不要求背拼字。
CORE IDEAS
DEBUG
課堂刻意錯誤:把 #name-input 寫成 #nameInput,讓 console 出現 null 相關錯誤;依序比對 HTML id、querySelector 與載入順序。
.is-highlighted 與 classList 字串。固定順序:先重現 → 讀 Console/Styles → 確認檔案與元素 → 一次只修一處 → 重跑原操作。
先查:確認 script、元素 id 與事件綁定時機。
先查:檢查函數參數、回傳值與 value 是否真的讀到。
先查:看 classList 名稱是否和 CSS 規則完全一致。
PRACTICE CONTRACT
檔案:script.js
位置:依任務文字搜尋對應元素或函式
結果:函數收到名字後回傳完整問候
檔案:script.js
位置:依任務文字搜尋對應元素或函式
結果:結果區顯示輸入者的名字
檔案:script.js
位置:依任務文字搜尋對應元素或函式
結果:可切換結果區的重點外觀
EVIDENCE
事件 ______ 讀取 ______,交給函數 ______,再更新 DOM ______;重點狀態由 class ______ 表達。
本章先用安全文字與 class 操作 DOM;不要把整段 HTML 字串直接塞進 innerHTML。
輸入自己的名字、按下按鈕並切換預覽狀態;口頭指出變數、函數、事件與 DOM 更新各在哪一段。
下一章:第 16 章會加入判斷、清單資料與本機保存。