Get to know MDN better
Esta página ha sido traducida del inglés por la comunidad. Aprende más y únete a la comunidad de MDN Web Docs.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julio de 2015.
MutationObserver establece un mecanismo para reaccionar ante cambios en el DOM. Ha sido diseñado como un sustituto de los Mutation Events definidos en las especificaciones de DOM3 Events.
Constructor para la instaciación de nuevos DOM mutation observers.
MutationObserver( function callback ); Parámetros callbackLa función que será llamada en cada mutación del DOM. El observer llamará a esta función con dos argumentos. El primero es un array de objetos, cada uno del tipo MutationRecord. El segundo es la propia instancia del MutationObserver.
| void disconnect(); |
| Array takeRecords(); |
Registra la instancia del MutationObserver para recibir notificaciones de las mutaciones del DOM sobre el nodo especificado.
void observe( Node target, MutationObserverInit options ); Parámetros targetEl Node sobre el que observar las mutaciones del DOM.
optionsUn objeto MutationObserverInit, que especifica que mutaciones del DOM deben ser informadas.
Nota: Añadir un observador a un elemento es igual que addEventListener, si usted observa el elemento múltiples veces no hace ninguna diferencia. Si se observa dos veces un elemento, el observe callback no se ejecutará dos veces, ni tampoco tendrá que ejecutar disconnect() dos veces. En otras palabras, una vez el elemento es observado, observarlo de nuevo con la misma instancia del observador no hará nada. Sin embargo, si el callback es diferente por supuesto se le añadirá otro observador.
Evita que la instancia de MutationObserver continue recibiendo notificaciones de modificaciones del DOM. Hasta que el método observe() sea usado de nuevo, la función callback no será invocada.
void disconnect();Vacía la cola de registros de la instancia de MutationObserver devolviendo su contenido.
Array takeRecords(); Return valueReturns an Array of MutationRecords.
MutationObserverInit es un objeto para el que se pueden especificar las siguientes propiedades:
Nota: Como mínimo las propiedades childList, attributes, o characterData deben ser true. En caso contrario, se producirá un error "An invalid or illegal string was specified"
| childList | Establecer a true si la adición y/o eliminación de elementos hijo del nodo (incluso los nodos text) han se ser observados. |
| attributes | Establecer a true si los cambios en los atributos deben ser observados |
| characterData | Establecer a true si los cambios en los datos deben ser observados |
| subtree | Establecer a true si los cambios tambien deben ser observados en los descendientes. |
| attributeOldValue | Establecer a true si attributes es true y el valor anterior al cambio debe ser guardado. |
| characterDataOldValue | Establecer a true si characterData vale true y el dato anterior al cambio de be ser guardado. |
| attributeFilter | Asigne un array de nombres de atributos locales (sin su espacio de nombres) si no necesita observar los cambios en todos los atributos |
MutationRecord es el objeto que será pasado a la funcion "callback" del observador. Tiene las siguientes propiedades:
type: StringDevuelve:
Devuelve el nodo afectado por el cambio, dependiendo del type:
Devuelve los nodos añadidos. Si no tiene nodos añadidos devuelve un NodeList vacio.
removedNodes: NodeListDevuelve los nodos eliminados. Si no tiene nodos eliminados devuelve un NodeList vacio.
previousSibling: NodeDevuelve el nodo hermano anterior añadido o eliminado, o el valor null.
nextSibling: NodeDevuelve el siguiente nodo hermano añadido o eliminado, o el valor null.
attributeName: StringDevuelve el nombre local del atributo cambiado, o el valor null.
attributeNamespace: StringDevuelve espacio de nombres (namespace) del atributo cambiado, o el valor null.
oldValue: StringEl valor devuelto depende del type:
El siguiente ejemplo fué tomado de: this blog post.
| DOM # interface-mutationobserver |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 24 jun 2025 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.