Determining if a HTML element has been added to the DOM dynamically

You can use Mutation Observers for this purpose – at least if you do not need to support IE/Opera.

Here’s a short example (taken from html5rocks.com) on how they are used:

var insertedNodes = [];
var observer = new WebKitMutationObserver(function(mutations) {
    mutations.forEach(function(mutation) {
        for(var i = 0; i < mutation.addedNodes.length; i++)
            insertedNodes.push(mutation.addedNodes[i]);
    })
});
observer.observe(document, {
    childList: true
});
console.log(insertedNodes);

Note the WebKit prefix. You need to use the browser-specific prefix. In Firefox it would be Moz instead.

2022 Update: You don’t need to use WebKit nor Moz as a preifx, as the majority of the browsers have implemented it. It is now accessible with MutationObserver.

Leave a Comment