polymer - 带 Typescript 的 LitElement,无法访问 ShadowRoot dom

标签 polymer shadow-dom lit-element

我的查询选择器或 getElementById 总是返回 null,有人可以向我解释为什么吗?尝试了我能想到的一切(并在互联网上找到)但没有任何效果。

@customElement('my-element')
export class MyElement extends LitElement {

@property({type : String}) carousel = document.querySelectorAll("[data-target='carousel']");

connectedCallback(): void {
    super.connectedCallback();

    console.log(this.shadowRoot.querySelector('slider'));
    console.log(this.shadowRoot.querySelector('.slider'));
    console.log(this.shadowRoot.querySelector('#slider'));
    console.log(this.shadowRoot.getElementById('slider'));

    console.log(document.getElementById('slider'));

}

render(){
    return html`
        <div class="slider" id="slider">
            <ul class="carousel" data-target="carousel">

最佳答案

请尝试以下操作:

@customElement('my-element')
export class MyElement extends LitElement {

  get root() {
    return this.shadowRoot || this
  }

   render(){
    return html`<div class="slider" id="slider">...`
   }

   firstUpdated() {
    console.log(this.root.getElementById('slider')
   }
}

关于polymer - 带 Typescript 的 LitElement,无法访问 ShadowRoot dom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58310778/

相关文章:

javascript - polymer JS : How to properly use paper-material

javascript - Polymer querySelector 在 dom-repeat 中找不到元素

javascript - 从 Shadow DOM 中访问元素

javascript - 在没有 disconnectedCallback 的情况下将元素从 light DOM 移动到 ShadowDOM

javascript - IE 和 Firefox 上的 Webcomponents.js 问题

web-component - connectedCallback 中的 lit-element getElementById 返回 null

polymer 1.0 :Nested dom-repeat templates cannot show the content of a child object

javascript - 访问嵌套的 polymer 元素

polymer - 如何使用 mixin 设计包含在 LitElement 自定义组件内的纸卡 (Polymer 3) 的样式

javascript - 单击时如何更改列表项的背景颜色? (ES6 和 polymer )