Hola,
Tengo un observador y lo llamo así:
myobserver.observe(mydiv, {childList : true, subtree : true, attributes : true});Necesito buscar el elemento observado, algo como esto
myobserver = new MutationObserver((mymutations) => { console.log(observed); //should output "mydiv" always regardless of the mutation });Probé mymutations.target pero eso no funcionará porque me dará un elemento diferente si la mutación está en uno de los niños. ¿Hay alguna forma de hacerlo?
Gracias
Intente agregar un atributo al elemento observado (principal) y luego use Element.closest() para encontrarlo desde la devolución de llamada de mutación.
const div = document.querySelector('div'); const span = document.querySelector('span'); const section = document.querySelector('section'); const blockquote = document.querySelector('blockquote'); const myobserver = new MutationObserver((mymutations) => { const observed = mymutations.map((mutation) => mutation.target.closest('[data-observed]')); console.log(observed); }); div.setAttribute('data-observed', ''); myobserver.observe(div, { childList: true, subtree: true, attributes: true }); section.setAttribute('data-observed', ''); myobserver.observe(section, { childList: true, subtree: true, attributes: true }); setTimeout(() => span.innerHTML = 'Something else', 500); setTimeout(() => blockquote.innerHTML = 'Something else', 500); <div> <span>Something</span> </div> <section> <blockquote>Something</blockquote> </section>