【问题标题】:Getting reference to element being observed with MutationObserver使用 MutationObserver 获取对正在观察的元素的引用
【发布时间】:2018-04-23 22:55:36
【问题描述】:

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

【问题讨论】:

  • 规范中没有你能看到的方法。只需将元素保存在变量中即可。

标签: javascript mutation-observers


【解决方案1】:

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

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

【讨论】:

  • 也可以在 chrome 中使用
【解决方案2】:

应该这样做:

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

【讨论】:

    猜你喜欢
    • 2015-03-21
    • 2021-12-15
    • 1970-01-01
    • 2013-07-25
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    相关资源
    最近更新 更多