Javascript 使用querySelector查找聚合物模板内的嵌套元素将返回null

Javascript 使用querySelector查找聚合物模板内的嵌套元素将返回null,javascript,polymer,shadow-dom,Javascript,Polymer,Shadow Dom,我试图在新元素(选项卡列表)中使用纸质选项卡,但在打印选项卡之后,我无法使用querySelector更改所选的选项卡 元素代码(无样式): 我试图将eventListener放入index.html中,但我遇到了同样的问题。 有人能告诉我问题出在哪里吗 多谢各位 document.querySelector('paper-tabs'); 找不到paper tabs元素,因为它隐藏在tab list元素的阴影DOM中 你可以简单地给纸质标签一个id,比如tabs,然后像这样访问它 this.$

我试图在新元素(选项卡列表)中使用纸质选项卡,但在打印选项卡之后,我无法使用querySelector更改所选的选项卡

元素代码(无样式):

我试图将
eventListener
放入index.html中,但我遇到了同样的问题。 有人能告诉我问题出在哪里吗

多谢各位

document.querySelector('paper-tabs');
找不到paper tabs元素,因为它隐藏在tab list元素的阴影DOM中

你可以简单地给纸质标签一个id,比如tabs,然后像这样访问它

this.$.tabs
(见附件。)

还可以选择直接访问阴影DOM

this.shadowRoot.querySelector('paper-tabs');
如果您只想侦听纸张选项卡选择上的更改,可以使用更改观察程序:

<paper-tabs selected="{{currentTab}}">

Polymer('tab-list', {
  currentTab: 'all',
  currentTabChanged: function() {
    console.log(this.currentTab);
  }
});

聚合物(“标签列表”{
currentTab:'所有',
currentTabChanged:函数(){
console.log(this.currentTab);
}
});

(请参见)

您的解决方案适用于静态创建的节点,但不适用于在dom重复中动态创建的节点。知道如何访问动态创建的节点吗?(至少Polymer 1.0文档声明:注意:使用数据绑定动态创建的节点(包括dom repeat和dom if模板中的节点)不会添加到this.$hash中。hash仅包括静态创建的本地dom节点(即元素最外层模板中定义的节点)。)在进一步的文档中,我读到这个.$$(选择器)将是一种方式,但我无法让它工作……我认为
this.shadowRoot
现在只是
this.root
this.$.tabs
this.shadowRoot.querySelector('paper-tabs');
<paper-tabs selected="{{currentTab}}">

Polymer('tab-list', {
  currentTab: 'all',
  currentTabChanged: function() {
    console.log(this.currentTab);
  }
});
      <template is="dom-repeat" items="{{dataobject}}">
        <div on-tap="_showdetail">
          <iron-collapse id="collapse">??</iron-collapse>
        </div>
      </template>
 _showdetail: function(e){
    Polymer.dom(e.currentTarget).querySelector('#collapse').toggle();
},