JavaScript 與原生 DOM 狀態
用固定本地例子,核對文字插入、事件生命週期、節點移動和表單值。
顯示文字時,保留 HTML 標記的原樣
把看似標記的字串當文字放入,再數真正子元素。
只開關一個 class,保留原有樣式
加一個狀態 class,原有名稱也要保留。
按鈕內的文字被按到,仍要找到正確動作
按鈕內層收到點擊,仍要找回所屬操作按鈕。
取消預設動作,不代表事件停止向上傳
取消與傳播是兩件事,要分開核對旗標。
元件停用後,事件監聽也要收好
兩次固定點擊之間 abort,核對監聽器是否已移除。
節點加了,為何一份清單有更新、另一份沒有?
節點改了,分清舊查詢結果和會即時更新的集合。
cloneNode 複製內容,不會複製事件監聽
複製按鈕內容後,監聽器仍只屬於原節點。
DocumentFragment 加入頁面後,自己會變空
DocumentFragment 插入後,追蹤子節點搬到哪裏。
data-* 寫了 false,讀出來仍是字串
讀 data-* 先看字串,再按已訂規則解讀。
FormData 收了哪些欄位?停用和未剔選要分清
核對初始表單項目,分清重複名稱與略過欄位。
數字欄空白,不應自動變成零
數字欄的原文字、valueAsNumber 和 Number,要分開讀。