Maison >interface Web >js tutoriel >Comment puis-je détecter et répondre aux modifications du DOM en JavaScript ?

Comment puis-je détecter et répondre aux modifications du DOM en JavaScript ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-15 01:54:09685parcourir

How Can I Detect and Respond to DOM Changes in JavaScript?

Détecter les modifications du DOM

Vous pouvez détecter les modifications apportées au modèle d'objet de document (DOM) à l'aide de diverses méthodes.

1. MutationObserver (navigateurs modernes)

const observer = new MutationObserver((mutations) => {
  // Process mutations here...
});

observer.observe(targetElement, { childList: true, subtree: true });

2. Événements de mutation (obsolètes, mais toujours pris en charge)

targetElement.addEventListener('DOMNodeInserted', (event) => {
  // Node added
});

targetElement.addEventListener('DOMNodeRemoved', (event) => {
  // Node removed
});

Exemple : Détection de l'ajout d'entrée

Si vous souhaitez spécifiquement exécuter une fonction lorsqu'un < div> ou est ajouté au HTML, voici un exemple pratique :

const targetElement = document.getElementById('element-to-monitor');

const observer = new MutationObserver((mutations) => {
  mutations.forEach((mutation) => {
    if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
      const addedNodes = mutation.addedNodes;

      Array.from(addedNodes).forEach((node) => {
        if (node.nodeName === 'DIV' || node.nodeName === 'INPUT') {
          // Execute your function here...
        }
      });
    }
  });
});

observer.observe(targetElement, { childList: true, subtree: true });

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn