获取对使用 MutationObserver 观察的元素的引用

Getting reference to element being observed with MutationObserver

我正在使用 MutationObservers 来观察多个 DOM 节点发生的变化(基本上是添加到它们的子树或删除整个节点)。

观察器工作正常,因为我使用了 subtree 选项。唯一的问题是我无法引用附加了变异观察器的父元素

const mutationObserver = new MutationObserver(mutationRecords => {
  mutationRecords.forEach(mutationRecord => {
    const addedNodesLength = mutationRecord.addedNodes.length;
    for (let i = 0; i < addedNodesLength; i++) {
      const node: Element = mutationRecord.addedNodes[i];
      // I need to check the parent of node that is being observed
    }
  });
});

我搜索了 MDN,但如果可能的话,我找不到任何参考资料。知道这是否可以做到吗?

mutationRecord.target 给你父元素,至少根据 this

我只在 Firefox 上测试过它,但它似乎可以正常工作。

应该这样做:

const observer = new MutationObserver(function(mutationsList, observer){
  for(let mutation of mutationsList){
    console.log(mutation.target);
  }
});