getElementsByClassName 获取元素之后其他地方新增了元素,怎么监听这个方法获取的数组变化了

发布于 2022-09-13 00:46:33 字数 92 浏览 22 评论 0

document.getElementsByClassName(xx')

获取元素后其他地方新增了元素,该怎么监听触发回调?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

醉酒的小男人 2022-09-20 00:46:33
function watchDom(el, ...args) {
  if (typeof el === 'string') {
    el = document.querySelector(el)
  }
  let opt = args.length > 1 ? args[0] : {}
  let cb = args.length > 1 ? args[1] : args[0]
  return new MutationObserver((mutations, observer) => {
    cb(mutations)
  }).observe(el, Object.assign({
    childList: true,
    attributes: true,
    characterData: true,
    subtree: true,
  }, opt))
}

// 使用
watchDom('.div-wrap', mts => {
  console.log('更新了')
})
老街孤人 2022-09-20 00:46:33

监听这个事件DOMSubtreeModified
表示如果当前监听元素的子节点有改动:包括删除子节点、增加子节点、修改子节点的内容,都会触发这个事件。

var container = document.querySelector(".父级class")
container.addEventListener('DOMSubtreeModified', function () {
    // do you thing
}, false);
烟凡古楼 2022-09-20 00:46:33

新增的时候重新获取一下

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文