MutationObserver

MutationObserver childList行為觀察

by sj82516

HTML

<ul id="observer-list">
<li id="child_1" class="oberserver-list__item">hello</li>
<li class="oberserver-list__item">mutation oberser</li>
</ul>

CSS

.highlight{
    color: red;
}

JavaScript

/*
creator : YJ Cheng
*/

const target = document.querySelector('#observer-list');

let observer1 = new MutationObserver(function(mutations) {
  mutations.forEach(function(mutation) {
    console.log(
    "屬性:",mutation.type, 
    "新增的節點:",mutation.addedNodes,
    "刪除的節點:",mutation.removedNodes);
  });
});

setTimeout(()=>{
	observer1.observe(target, {
    	childList: true,
        subtree: true
    });
    target.removeChild(document.getElementById("child_1"))
}, 1000)

setTimeout(()=>{
	observer1.observe(target, {
    	childList: true,
        subtree: true
    });
    // w3c 範例
    var node = document.createElement("LI");
    var textnode = document.createTextNode("Water");
    node.appendChild(textnode);
    target.appendChild(node);
}, 2000)