如何在polymer.dart组件中使用jquery访问shadow dow

在我的polymer.dart组件中,我想用jquery访问shadow dom。 在dart我可以像这样访问节点的id:

$["testname"].attributes["id"] 

要么

 shadowRoot.querySelector("#testname").attributes["id"] 

这是如何用jquery完成的

 context.callMethod(r'$', ['#testname'])["id"] 

显然不起作用。

如果要使用jquery从Dart访问shadow DOM,可以执行以下操作:

 String selector; JsObject jqueryObject = context.callMethod('\$', ['body /deep/ ${selector}']); 

然后你可以像这样调用jquery方法:

 jqueryObject.callMethod('click', [myFunc]); void myFunc(var event) => print('it worked'); 

在属性的情况下,您需要调用jquery的attr()方法。

 String attr = jqueryObject.callMethod('attr', ['id']); 

更新:到目前为止,我只是设法使用chrome for desktop。 我相信,其他浏览器不支持/ deep / combinator。

你必须使用webkitShadowRoot属性,如element.webkitShadowRoot.querySelector(...)