在經過HTML、CSS的學習後,接下來要提到的JavaScript,對於增加網頁的互動功能性,扮演舉足輕重的角色。舉凡點擊按鈕後,會產生相對應的互動,諸如產生填寫表單供網頁使用者填寫、關閉填寫表單、送出填寫完的表單內容資料等功能。
有鑑於有了ChatGPT的幫忙,目前要撰寫出JavaScript於網頁互動基本且實用功能,大部分ChatGPT都可以很順利地完成任務,並提供可用的程式碼,因此接下來主要的工作,就是負責檢查有無明顯錯誤,以及有無不合於自己網頁的結構或命名等配對性的問題。
這裡只舉一個簡單但常用的JavaScript程式碼例子,並簡單介紹如何解讀並配合自己的網頁功能需求進行修改。其餘者,其實大部分都可藉由詢問ChatGPT來取得答案,於此不再贅述。
以下是簡單的按鈕功能,將分別拆解該程式碼邏輯。
// 綁定查詢按鈕
const searchBtnSchedule = document.getElementById("btn_search_schedule");
if (!searchBtnSchedule) {
console.error("找不到 #btn_search_schedule 按鈕,請確認 HTML 結構!");
return; // 中止後續執行
}
searchBtnSchedule.addEventListener("click", () => {
console.log("🔍 查詢按鈕被點擊,開始獲取班表資料...");
searchSchedule(); // 呼叫資料取得邏輯
});
JavaScript是物件導向語言,通常會有一個物件,並根據方法或屬性,進行物件的操作,此例中document
,代表整個HTML文件的物件,並藉由getElementById()
方法,以ID選擇器進行搜尋,並將搜尋結果存入常數變數searchBtnSchedule
中。
從這裡我們可以發現,程式在語意理解上相當直觀,變數及方法名稱,基本都是採用具可解讀性的方式命名,並且從該命名方式,其實馬上可以猜測,是否可以用類別(class)來進行物件搜尋,當有這個問題,就可以馬上去問ChatGPT,不出所料,馬上可以得到以下的表格資訊,除了告訴你方法名稱外,連傳回資料的型態跟後續用法的差異,都一併幫你整理出來,大大降低了學習JavaScript入門的門檻!
✅ 常見的 DOM 選取方法比較表
方法 | 用途 | 傳回型態 | 範例 | 備註 |
---|---|---|---|---|
getElementById(id) |
根據 ID 選取單一元素 | 單一元素(或 null ) |
document.getElementById("myBtn") |
ID 唯一,無法選取多個 |
getElementsByClassName(class) |
根據 class 選取一組元素 | 類陣列(HTMLCollection) | document.getElementsByClassName("card") |
可用索引存取,需轉換才能用 forEach |
getElementsByTagName(tag) |
根據標籤名稱選取元素群 | 類陣列(HTMLCollection) | document.getElementsByTagName("div") |
回傳所有同標籤元素 |
querySelector(cssSelector) |
根據 CSS 選擇器選取第一個符合的元素 | 單一元素(或 null ) |
document.querySelector("#myBtn") |
可選 ID、class、屬性等 |
querySelectorAll(cssSelector) |
根據 CSS 選擇器選取所有符合的元素 | 節點清單(NodeList) | document.querySelectorAll(".card") |
可用 forEach,彈性高 |
console.error()
的結果,則可於網頁中按F12,並在「Console」分頁下找到該訊息。addEventListener()
方法,用於監聽該按鈕,有無發生特定的事件,並進行相對應的動作。同樣地,方法名稱相當直觀,並且應該也可以想像,除了點擊滑鼠click
事件之外,應該還有其他事件可供選擇,若有想到相關的問題,二話不說,馬上求助於ChatGPT,可以自己試試看。console.log()
的方法,追蹤執行的階段進度,有助於程式可解讀性及除錯。在之後,試著呼叫searchSchedule()
函式,來進行排程的查詢。呼叫函式的方式及提醒事項,將在後續另外介紹。