如何在polymer dart 1.0.0.rc2中对本地dom执行querySelectorAll?
我想对聚合元素的如何在polymer dart 1.0.0.rc2中对本地dom执行querySelectorAll?,dart,dart-polymer,polymer-1.0,Dart,Dart Polymer,Polymer 1.0,我想对聚合元素的本地dom执行querySelectorAll。我想这样做很简单: querySelectorAll("some selector"); 这不是一个好主意,因为所有这些模糊的shady/shadowdom实现细节。我尝试了几种不同的方法: var lst = Polymer.dom(root).querySelectorAll(".qtest"); 给出了js数组的包装器: 给出ElementList的实现: 只是简单的元素列表: 简而言之:调用从本地dom返回元素列表
本地dom
执行querySelectorAll
。我想这样做很简单:
querySelectorAll("some selector");
这不是一个好主意,因为所有这些模糊的shady/shadowdom实现细节。我尝试了几种不同的方法:
var lst = Polymer.dom(root).querySelectorAll(".qtest");
给出了js数组的包装器:
给出ElementList
的实现:
只是简单的元素列表:
简而言之:调用从本地dom
返回元素列表的querySelectorAll()
的正确方法是什么
Polymer.dom(root).querySelectorAll('some selector');
使用此Polymer API可确保即使在使用shady DOM或shadow DOM多边形填充时也能得到所需
另请参见我不知道这是否适用于dart,但您是否尝试过使用this.queryselectoral()
?据我所知,它返回一个节点列表,这可能是您想要的(这里有一个快捷方式),因为我相信在Dart中调用this.method()
和method()
没有区别。Polymer.dom(this.queryselectoral()
返回light dom
中的元素,但我需要查询本地dom
。当然,我可以将this
更改为root
,但还有另一个问题:返回的列表不是ElementList
类型(例如,我可以使用querySelectorAll().onClick
,但这里没有Polymer.dom(this.querySelectorAll('').onClick
)。对不起,我混淆了本地dom和轻型dom。没错,这是这个API的一个限制。在JS中无法创建ElementList。解决方法是.forEach((e)=>e.onClick)
谢谢。因此,我似乎需要创建自己的ElementsList
实现,因为一些现有发布包(如)使用ElementList
类的成员。启用阴影DOM可能有助于我假设阴影DOM可以正常使用浏览器API(如以前的Dart版本)我还没仔细看。另见
var lst3 = convertToDart(Polymer.dom(root).querySelectorAll(".qtest"));
Polymer.dom(root).querySelectorAll('some selector');