Mutation Observer儲存原有的值
關於Mutation Observer基本知識可以參閱以下兩篇文章:
(1).Mutation Observer優點一章節。
(2).Mutation Observer用法一章節。
observe()方法第二個引數,不但可以規定監聽的型別,也可以規定是否儲存變化前的值。
程式碼如下:
[JavaScript] 純文字檢視 複製程式碼Observer.observe(ul, { attributes: true, attributeOldValue: true });
上面程式碼規定監聽ul元素屬性的變化,並記錄變化前的屬性值;可以儲存的舊值型別如下:
(1).attributeOldValue:布林值,規定監聽屬性變化時,是否記錄變動前的屬性值。
(2).characterDataOldValue:布林值,規定監聽characterData變化時,是否記錄變動前的文字內容。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> window.onload = function () { var ul = document.querySelector("ul"); var Observer = new MutationObserver(function (mutations, instance) { mutations.forEach(function (mutation) { console.log(mutation); }); }); Observer.observe(ul, { attributes: true, attributeOldValue: true }); ul.setAttribute("class","a"); ul.setAttribute('class', "b"); } </script> </head> <body> <div id="box"> <ul> <li>螞蟻部落</li> </ul> </div> </body> </html>
上面程式碼首先給ul元素設定了class屬性,然後再修改此屬性。
控制檯截圖如下:
對於characterDataOldValue也是同樣的原理,這裡不做介紹了。
相關文章
- Mutation Observer優點Server
- 監聽Dom節點變化 - Mutation ObserverServer
- 華為雲OBS物件儲存服務:值得擁有的貼心的儲存管家物件
- 原創:oracle 儲存過程Oracle儲存過程
- 一個數值儲存核取方塊的值
- 說說你對IE特有的資料儲存userData的理解
- MySQL null值儲存,null效能影響MySqlNull
- canvas 儲存與還原狀態Canvas
- 數值資訊的機器級儲存
- TIDB儲存TiKV的鍵值對資料TiDB
- 提升Raft以加速分散式鍵值儲存Raft分散式
- MySQL 的 NULL 值是怎麼儲存的?MySqlNull
- SAS 數值儲存方式和精度問題
- 塊儲存 檔案儲存 物件儲存物件
- 向已有的excel表中追加資料儲存(表頭一致)Excel
- 儲存—物件儲存_Minio物件
- 981-基於時間的鍵值儲存
- 981. 基於時間的鍵值儲存
- 棧是按照順序且連續儲存值
- 行式儲存 列式儲存
- 子元件獲取父元件的值,將這個值作為狀態值儲存元件
- 資料儲存--檔案儲存
- 物件儲存 vs 檔案儲存 vs 塊儲存,選哪個?物件
- 儲存
- HTML5 Web儲存 頁面間進行傳值HTMLWeb
- 3 python的數值在記憶體中如何儲存Python記憶體
- 使用紋理的RGBA通道儲存float型別數值型別
- Android儲存(2)– 介面卡儲存Android
- 儲存過程與儲存函式儲存過程儲存函式
- sqlserver資料庫還原儲存過程指令碼SQLServer資料庫儲存過程指令碼
- K8S原來如此簡單(七)儲存K8S
- 雲原生儲存詳解:容器儲存與 K8s 儲存卷K8S
- 聚焦資料時代新儲存需求,浪潮儲存的新儲存之道
- Flutter持久化儲存之檔案儲存Flutter持久化
- Android-內部儲存和外部儲存Android
- 物件儲存,未來儲存新潮流物件
- 容器附加儲存(CAS)是雲原生儲存
- openGauss儲存技術(一)——行儲存引擎儲存引擎