<span class="day"></span>
<script>
var oday = document.getElementById("day"); // 錯誤:查找 id="day",但元素只有 class="day"
oday.innerHTML = newday; // oday 為 null
</script>
document.getElementById("day") 尋找 id="day" 的元素,但 HTML 中 <span class="day"> 只有 class 屬性,無 id 屬性。返回 null,隨後訪問 .innerHTML 拋出異常。
<span id="day" class="day"></span>
<script>
var oday = document.getElementById("day"); // 正確
oday.innerHTML = newday;
</script>
<span class="day"></span>
<script>
var oday = document.querySelector(".day"); // 選第一個 class="day"
oday.innerHTML = newday;
</script>
var oday = document.getElementsByClassName("day")[0]; // 返回集合,取第一個
oday.innerHTML = newday;
| 方法 | 適用場景 | 性能 | 返回值 |
|---|---|---|---|
| getElementById | 唯一標識元素 | 最快 | Element / null |
| querySelector | 複雜選擇器 (class, 屬性, 後代) | 較慢 | Element / null |
| getElementsByClassName | 按 class 批量操作 | 快 | HTMLCollection (即時) |
| querySelectorAll | 複雜選擇器批量 | 較慢 | NodeList (靜態) |
document.getElementById("day") 直接檢查返回值。id,優先用 getElementById。if (oday) oday.innerHTML = ...。id 與 class 混淆 是新手高頻錯誤。記住:#id 唯一,.class 可重複。HTML 寫 id="day",JS 用 getElementById("day");或 HTML 寫 class="day",JS 用 querySelector(".day")。