是否可以查看 Shadow DOM 元素是否存在?我不太在意操纵它,甚至不太在意按说来真正瞄准它。我理解封装的原因。但我希望能够根据 Shadow DOM 元素是否存在来设置常规 DOM 中其他元素的样式。
有点像:
if ( $('#element-id #shadow-root').length ) {
// true
}
或者,如果不是针对 shadow-root,至少包含一个特定的元素,例如 div 的 id。所以如果那个 div 存在,那么很明显 Shadow DOM 元素就在页面上。
我知道它不会那么简单……根据我所做的一些研究,有一些东西像 >>>
和 /deep/
但他们的支持似乎很低/没有/已弃用.购买也许还有另一种方式,但它可能不优雅?
原文由 Chase 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果你想检查一个 特定 的元素是否托管了一个 开放 的 Shadow DOM 元素,你可以执行以下操作:
也可以获取 Shadow DOM 元素,然后像普通节点一样对其进行操作:
这是一个适用于最新版 Chrome 的示例: