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

时间:2018-04-23 22:55:37

标签: javascript mutation-observers

我正在使用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,如果可能,我找不到任何参考。不知道是否可以这样做?

2 个答案:

答案 0 :(得分:0)

mutationRecord.target为您提供父元素,至少根据this

我只在Firefox上测试过,但它似乎正在运行。

答案 1 :(得分:0)

这应该做到:

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