监听符合特征的 DOM 元素的产生

  1. // 目标特征:监听 class 包含 "target-class" 的元素
  2. const targetClassName = 'target-class';
  3. // 创建 MutationObserver 实例
  4. const observer = new MutationObserver((mutationsList) => {
  5. for (const mutation of mutationsList) {
  6. // 检查新增的节点
  7. if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
  8. mutation.addedNodes.forEach((node) => {
  9. // 检查节点是否是元素节点,并且是否符合特征
  10. if (node.nodeType === Node.ELEMENT_NODE && node.classList.contains(targetClassName)) {
  11. console.log('目标元素已创建:', node);
  12. }
  13. // 检查子节点是否符合特征
  14. if (node.querySelectorAll) {
  15. const targetElements = node.querySelectorAll(`.${targetClassName}`);
  16. targetElements.forEach((element) => {
  17. console.log('目标元素已创建(子节点):', element);
  18. });
  19. }
  20. });
  21. }
  22. }
  23. });
  24. // 配置 MutationObserver
  25. const config = {
  26. childList: true, // 监听子节点的变化
  27. subtree: true, // 监听整个子树的变化
  28. };
  29. // 开始观察
  30. observer.observe(document.body, config);