2014-02-18 146 views
1

聚合物中是否有替代querySelectorAll?用聚合物替代querySelectorAll

我喜歡編程做很多東西,單元素我用:

ButtonElement b2 = $["b2"]; 

但是,如果我想獲得一些單選按鈕,我不能用通常的

List<InputElement> radios = querySelectorAll("[name='func']"); 
radios.forEach((f) { 
    f.onClick.listen((e) => changeFunction(f,e)); 
}); 

應該我以不同的方式去做?

回答

4

ShadowRoot(其延伸DocumentFragment),和Element都有querySelectorquerySelectorAll已正確作用域。

對於您使用的自定義元素,取決於您是要查詢光線還是陰影DOM,但由於您使用的是$[],因此您可能需要使用陰影根。

試試這個:

List<InputElement> radios = shadowRoot.querySelectorAll("[name='func']"); 
+0

對於不支持WebComponents規格的零件,或者如果你正在使用黑幕DOM,我做這樣的檢查瀏覽器: '''(this.shadowRoot) ? this.shadowRoot.querySelectorAll('。foo'):this.querySelectorAll('。foo');''' –

+1

不要這樣做,因爲你可能會選擇光DOM元素。使用'Polymer.dom(this.root).querySelectorAll('。foo')' –