聚合物this.querySelector('#my_id')vs this。$。my_id

时间:2014-09-20 02:42:03

标签: polymer

为什么this.querySelector("#hello")找不到我的元素而this.$.hello找不到它?

2 个答案:

答案 0 :(得分:4)

您所寻找的元素很可能位于您的元素Shadow DOM中。尝试

this.shadowRoot.querySelector('#hello');

答案 1 :(得分:3)

this.shadowRoot.querySelector('#hello')

不是推荐的方法,更好的方法是使用内置的Polymer函数:

this.$$('#hello')

为什么?

  1. 它短得多,
  2. 它在Polymer函数Polymer.dom(this.root).querySelector(selector)中运行构建,该函数针对Polymer
  3. 的使用进行了优化

    为了完整起见,如果您无法使用this.$["hello"]或只是不想

    ,则可以使用this.$.hello