javascript - 无法在“MutationObserver”上执行“观察”:参数 1 不是“节点”类型
问题描述
我正在创建一个脚本来为某些元素添加属性。我希望它适用于动态添加的元素。我想使用 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 的帮助,他帮助返工了回调。
推荐阅读
- machine-learning - 给定上下文和可能的单词,如何计算哪个单词最适合?
- elasticsearch - Search Guard 使用 SSL 连接到远程 Elasticsearch 集群
- angular - *ngFor 中是否可以进行反射
- azureservicebus - MassTransit Azure 服务总线,设置定期计划
- json - 如何在关系表laravel 5.8中解码Json数据
- python - 在 Keras 中使用 ConvLSTM 对移动 MNIST 进行非相干帧预测
- java - 需要在 Testng 运行时跳过测试用例
- javascript - 操作包含文件路径的字符串以仅获取文件名
- swift - Swift - 超时执行网络调用的递归函数?
- excel - 从 Powershell 写入 Excel:如何设置值的单元格格式?