【发布时间】:2021-12-27 15:51:02
【问题描述】:
在以下SO-post 的帮助下,我知道可以使用单个MutationObserver-object 跟踪多个元素。我想在一个网站上跟踪两个元素的文本,所以我写了以下脚本:
var seconds = document.getElementsByClassName('sr-lmt-0-ms-countdown__time srt-primary-7 srm-large')[2];
var minutes = document.getElementsByClassName('sr-lmt-0-ms-countdown__time srt-primary-7 srm-large')[3];
var callback = function(mutations) {
for (var mutation of mutations) {
// do something
// console.log(mutation + (minutes or seconds));
}
};
var observer = new MutationObserver(callback);
var config = {characterData: true, subtree: true};
observer.observe(minutes, config);
observer.observe(seconds, config);
如何更改此脚本,以便控制台显示哪个变量触发了MutationObserver?
编辑
如果我检查 mutation.target 我会看到以下内容:
我不知道是sec 还是minutes 触发了突变?我该如何区分?
【问题讨论】:
-
mutation.target -
你看the specification of
MutationObserver了吗?都在那里。 -
@RandyCasburn 我添加了
mutation.target的输出,但我仍然不清楚 -
@amn,公平地说,我做到了,但我正在努力解决
-
感谢您迄今为止的宝贵时间。我知道一个元素会触发一个突变事件。我定义了两个
vars,每个代表DOM 中的不同元素。我想知道是哪一个。如果我检查两个元素的文本,它可以是任何一个;1可以代表一秒或一分钟。如果我查看.parentElement属性,我会看到sr-lmt-0-ms-countdown__time srt-primary-7 srm-large。使用上述和document.getElementsByClassName()定位的元素共有 4 个。我们如何识别由minutes或seconds引起的突变事件?我不明白如何
标签: javascript mutation-observers