Events with Methods Generate them
DOMSubtreeModified:
DOMNodeRemovedFromDocument:
Node.replaceChild
Node.removeChild
Element.removeAttribute
Element.setAttributeNode
Element.removeAttributeNode
Element.removeAttributeNS
Element.setAttributeNodeNS
DOMNodeInsertedIntoDocument:
Node.insertBefore
Node.replaceChild
Node.appendChild
Element.setAttribute
Element.setAttributeNode
Element.setAttributeNS
Element.setAttributeNodeNS
DOMNodeInserted:
Node.insertBefore
Node.replaceChild
Node.appendChild
Element.setAttribute
Element.setAttributeNode
Element.setAttributeNS
Element.setAttributeNodeNS
DOMNodeRemoved:
Node.replaceChild
Node.removeChild
Element.removeAttribute
Element.setAttributeNode
Element.removeAttributeNode
Element.removeAttributeNS
Element.setAttributeNodeNS
DOMAttrModified:
Element.setAttribute
Element.removeAttribute
Element.setAttributeNode
Element.removeAttributeNode
Element.setAttributeNS
Element.removeAttributeNS
Element.setAttributeNodeNS
DOMCharacterDataModified:
Node.nodeValue
CharacterData.data
CharacterData.appendData
CharacterData.deleteData
CharacterData.insertData
CharacterData.replaceData
ProcessingInstruction.data
Some Event Generation Order consideration
As above, some changes of DOM caused by certain API can emit multiple Events. In some situation, the DOM spec define the order of the events. For example, when an Attr is removed from an element, the implementation should send the following events as the following order:
DOMNodeRemoved
DOMAttrModified
DOMSubtreeModified
But in other situation, the events order are not specified. For example, when an Attr is added to an element, the implement should may send:
DOMNodeInserted
DOMAttrModified
DOMSubtreeModified
or
DOMAttrModified
DOMNodeInserted
DOMSubtreeModified
The point here is, the DOMAttrModified and DOMNodeInserted can be dispatched in any order, but the DOMSubtreeModified event should always the last event after bunch of events.