javascript - 如何在不同的 Web 组件中获取元素?
问题描述
使用 JavaScript 时,向元素添加影响 DOM 不同部分的事件是很常见的。要处理这些事件,可以使用类似getElementById
or的方法getElementsByClassName
。但是,在使用 Web 组件和影子 DOM 时,您不能直接访问位于不同组件中的元素。你必须想办法绕过影子 DOM 封装。到目前为止,我一直在这样做:
document.getElementById("root").shadowRoot.querySelector("#my-element");
通过这种方式,我访问了我的应用程序的主要根组件,然后是它的影子 DOM,最后是我的目标元素。但是,如果我需要在一个组件内的组件内获取一个元素,而该组件又在另一个组件内呢?我的代码将是一个看起来不太易于维护的长链。
这就是为什么我想知道,有没有更好的方法来做到这一点?在这方面是否有任何模式或最佳实践?
解决方案
推荐阅读
- python - 从触发事件选项测试云函数
- php - 来自服务器的空回复
- ruby-on-rails - Heroku 部署预编译资产失败
- html - 当另一个 div 滚动出 DOM 时如何显示一个 div
- sql - 如何在搜索功能中使用 NOT IN 和 LIKE?
- python - Faust for Python:如何启动 worker 来运行 hello world
- java - 调用 super.paint jframe 时的竞争条件
- c++ - 如何使用 x86 内在函数进行灰度 -> RGB 像素复制
- blazor - 如何在 Blazor 中使用 Azure App Config 中的功能标记?
- opengl - 是什么阻止了虚幻引擎中的 glGetTexImage?