编程语言
首页 > 编程语言> > javascript – 使用MutationObserver监视带有指定选择器的元素插入的任何方法?

javascript – 使用MutationObserver监视带有指定选择器的元素插入的任何方法?

作者:互联网

假设我有一个HTML层次结构,例如:

<div id="container">
  <div class="c">
    <div class="c"></div>
  </div>
  <div class="c"></div>
  <div class="c"></div>
</div>

我想监视这个HTML的DOM,以了解何时在任何地方插入带有类c的新元素.从我所看到的MutationObserver,没有办法做到这一点.

相反,我必须观察#container for childList事件并让它观察整个子树.如果我的真实世界代码仅具有上述内容,那么这将是正常的,但DOM是巨大的并且一直无法获得动态插入/删除.

我是否错过了使用MutationObserver监视具有特定类的元素插入的方法?

解决方法:

一种选择是使用Mutation Summary.

他们的API非常简单:

var observer = new MutationSummary({
    callback: function (changes) {
        changes.forEach(function (change) {
            // Look only into added changes
            change.added.forEach(function (el) {
                 // el is the DOM element matched
                 console.log(el); 

                 // If you only need one match, you can disconnect the observer
                 // observer.disconnect();
            }) 
        })
    },
    queries: [{element:'.c'}],
    rootNode: document.getElementById('container')
});

它支持CSS selectors的简单子集,但在您的情况下应该足够了.

标签:javascript,mutation-observers
来源: https://codeday.me/bug/20190711/1431624.html