在我的polymer.dart组件中,我想用jquery访问shadow dom。 在飞镖中我可以访问f.e.一个节点的id如下:
$["testname"].attributes["id"]
或
shadowRoot.querySelector("#testname").attributes["id"]
如何使用jquery完成
context.callMethod(r'$', ['#testname'])["id"]
显然不起作用。
答案 0 :(得分:2)
如果要使用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桌面上进行此工作。我相信,其他浏览器不支持/ deep / combinator。
答案 1 :(得分:0)
您必须使用webkitShadowRoot
element.webkitShadowRoot.querySelector(...)
属性