从 Shadow DOM 中获取 GetElementById

Yur*_*ets 11 javascript web-config shadow-dom

我有一个带有 shadow DOM 的自定义元素,它侦听属性target更改。
target应该是我的组件应该附加到的元素的 ID。

我试过使用querySelectorgetElementById来获取外部 DOM 的元素,但它总是返回null.

console.log(document.getElementById(target));
console.log(document.querySelector('#' + target));
Run Code Online (Sandbox Code Playgroud)

以上两者都返回null

有没有办法从 shadow DOM 中获取对父文档中元素的引用?

Pen*_*Liu 13

你只需要调用Shadow?Root

this.shadowRoot.getElementById('target') 应该管用。

这是一个示例,get语法将对象属性绑定到函数。

get target() {
    return this.shadowRoot.getElementById('target');
}
Run Code Online (Sandbox Code Playgroud)

  • 这个答案是不正确的。问题是如何从“Shadow DOM”中获取“Document”中的元素,而不是相反。 (3认同)