追蹤DOM內部的變化事件
之前遇到一個問題是想要擷取 dom 的加入事件,把每一筆加入的項目抽出來做額外的處理。
最一開始我傻呼呼地想要用監聽 onchange 來解決,所以把程式寫成這樣
1 | let dom = document.querySelector("ol"); |
想當然爾,他是沒有任何反應的。
查了一下MDN:
The change event is fired for
input,select, andtextareaelements when an alteration to the element’s value is committed by the user.
總之onchange不是用來監聽這種事件的。
MutationObserver
真正符合需求的是這個東西,MutationObserver。
一樣讀一下MDN,
它可以用來監聽目標的子節點是否有增減,以及目標本身屬性是否有變化。
寫起來大概像這樣
1 | // 要監聽的目標 |