在我的Polymer组件中无法querySelector

Nic*_*ois 9 dart dart-polymer

我试图通过querySelector访问我的组件的一部分,但它返回null.

我的组件中的html如下所示:

<nav class="mainmenu">
   <div class="container">
       <div class="dropdown" id="my-dropdown">
Run Code Online (Sandbox Code Playgroud)

我想要访问它的原因是因为,当用户点击正文中的某个地方时,我想在某些条件下更改类.

void ready(){
 document.body.onClick.listen((E)  {
   if(_isActive){
    querySelector("#my-dropdown");
Run Code Online (Sandbox Code Playgroud)

querySelector始终重新返回null.为什么?

我理解影子dom原谅我访问其他dom组件,但为什么在同一个组件?我怎样才能访问它?或者我应该采用不同的方法?

Ale*_*uin 16

当您使用时,querySelector("#my-dropdown")您正在使用顶级函数querySelector.此功能在主文档中搜索,而不是在聚合物元素的ShadowDOM内搜索.

在您的情况下,您应该使用shadowRoot.querySelector('#my-dropdown')$['my-dropdown'](它是一个快捷方式)来获取您正在查询的元素.