无法在 'MutationObserver' 上执行 'observe':参数 1 不是 'Node' 类型
Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'
我正在创建一个脚本来为某些元素添加属性。我希望它能为
动态添加的元素。我想使用 Mutation Observe,但我收到了这个错误:
Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'.
我使用的代码:
const langAdding = (tag) => {
tag.setAttribute('lang', 'en-us');
}
const target = document
const callback = (mutations, observer) => {
mutations.forEach(mutation => {
switch (mutation.type) {
case 'childList':
for (const el of mutation.addedNodes) {
if (!el.hasAttribute("lang")) {
el = langAdding(el)
} else if (el.firstElementChild) {
for (const child of el.getElementsByTagName('p')) {
child = langAdding(child);
}
}
break;
}
})
}
const observer = new MutationObserver(callback);
observer.observe(target, {
childList: true,
attributes: true,
characterData: true,
subtree: true
});
而且我真的不知道我做的是否正确。发现错误请帮助
问题中的代码可以正常运行,我只需要删除代码中的最后一行(observer.disconnect()) 非常感谢@wOxxOm 的帮助,他帮助返工了回调。
我正在创建一个脚本来为某些元素添加属性。我希望它能为
动态添加的元素。我想使用 Mutation Observe,但我收到了这个错误:
Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'.
我使用的代码:
const langAdding = (tag) => {
tag.setAttribute('lang', 'en-us');
}
const target = document
const callback = (mutations, observer) => {
mutations.forEach(mutation => {
switch (mutation.type) {
case 'childList':
for (const el of mutation.addedNodes) {
if (!el.hasAttribute("lang")) {
el = langAdding(el)
} else if (el.firstElementChild) {
for (const child of el.getElementsByTagName('p')) {
child = langAdding(child);
}
}
break;
}
})
}
const observer = new MutationObserver(callback);
observer.observe(target, {
childList: true,
attributes: true,
characterData: true,
subtree: true
});
而且我真的不知道我做的是否正确。发现错误请帮助
问题中的代码可以正常运行,我只需要删除代码中的最后一行(observer.disconnect()) 非常感谢@wOxxOm 的帮助,他帮助返工了回调。