I have a div which has its content changing all the time , be it ajax requests
, jquery functions
, blur
etc etc.
Is there a way I can detect any changes on my div at any point in time ?
I dont want to use any intervals or default value checked.
Something like this would do
$('mydiv').contentchanged() { alert('changed') }
The changes to the html/text of a div can be detected using jQuery on() method. The on() is used to attach one or more event handlers for the selected elements and child elements in the DOM tree.
The change() is an inbuilt method in jQuery that is used to detect the change in value of input fields. This method works only on the “<input>, <textarea> and <select>” elements. Parameter: It accepts an optional parameter “function”. Return Value: It returns the element with the modification.
If you don't want use timer and check innerHTML you can try this event
$('mydiv').on('DOMSubtreeModified', function(){ console.log('changed'); });
More details and browser support datas are Here.
Using Javascript MutationObserver:
// Select the target node. var target = document.querySelector('mydiv') // Create an observer instance. var observer = new MutationObserver(function(mutations) { console.log(target.innerText); }); // Pass in the target node, as well as the observer options. observer.observe(target, { attributes: true, childList: true, characterData: true });
See the MDN documentation for details; this should work in pretty much all current browser, including IE11.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With