首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >聚合物document.querySelector未按预期工作

聚合物document.querySelector未按预期工作
EN

Stack Overflow用户
提问于 2014-07-09 05:39:45
回答 2查看 8.5K关注 0票数 4

要么我做了什么可怕的错误,要么聚合物就是不喜欢我。见下文:

代码语言:javascript
复制
<polymer-element name="menu-paper-ui" noscript>
 <template>
  <paper-dialog heading="Dialog" transition="paper-dialog-transition-bottom">
  [ .. ]
  </paper-dialog>
  <paper-button label="Dialog Bottom" on-tap="{{toggleDialog}}"></paper-button>

 </template>
 <script>
  Polymer('menu-paper-ui', { 
    toggleDialog : function() {
      var dialog = document.querySelector('paper-dialog');
      console.log(dialog); //returns null
      dialog.toggle();
    }
  })

 </script>
</polymer-element>

现在,我有理由使用querySelector。所以,如果有人能告诉我出了什么问题,那就太好了!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-09 08:35:05

这个问题与Using querySelector to find nested elements inside a Polymer template returns null几乎完全相同。

简单的回答是,聚合物元素模板中的元素被放入该元素的ShadowDOM中,在该元素之外的任何元素中都不可见。这样您就可以更容易地控制样式,并且元素is被限定范围。

您可以给对话框一个id并使用聚合物的自动节点查找,或者使用this.shadowRoot.querySelector('paper-dialog')

票数 13
EN

Stack Overflow用户

发布于 2014-07-09 08:42:18

问题是您无法使用document.querySelector访问自定义元素中的影子DOM。See my answer to a similar question

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24646081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档