在我的擴展WebComponent的類中,是否有一種標準方式來訪問表示此實例根目錄的DOM元素?Dart WebComponent是否可以訪問其DOM元素
2
A
回答
2
是的,你可以使用getShadowRoot():
getShadowRoot('x-some-component').style.color = '#F00';
2
有兩種方法。首先是使用_root
。第二種選擇是使用Pixel Elephant提到的getShadowRoot()
。
一些舊代碼依賴於_root
,但不要使用它,因爲它已被棄用並且正在消失。在IDE中,getShadowRoot()
也會更好地自動完成。
這是你應該做的:
getShadowRoot('x-your-element').classes.add('your-element');
+0
請參閱Pixel Elephant的回答評論。 – brooks94
+0
@ brooks94你不需要存儲任何東西。 'x-your-element'只是web組件的名稱,例如:'
0
我不知道這是否是做到這一點的好辦法,
但我用這樣的:
inserted() {
var root = shadowRoot != null? shadowRoot: this;
var element = root.query("something in the webcomponent dom");
element.text = "Hello from webcomponent";
}
此代碼符合影子和標準的方式。
相關問題
- 1. 訪問DOM元素
- 2. 訪問DOM元素
- 3. 在Dart單元測試中訪問DOM
- 4. 你可以使用JS訪問元素的DOM子元素嗎?
- 5. 是否可以獲取vuejs元素的DOM元素?
- 6. 通過Angular2 Dart訪問dom
- 7. 是否可以從主線程以外訪問UI元素?
- 8. 訪問DOM元素JS
- 9. jQuery訪問DOM元素
- 10. 無法訪問DOM元素
- 11. jquery DOM訪問父元素
- 12. 訪問DOM元素在VueJS
- 13. 訪問Jquery DOM元素
- 14. 如何初始化Dart WebComponent
- 15. 訪問WebComponent中的頂級函數
- 16. Silverlight,我可以訪問Webbrowser控件中的DOM元素嗎?
- 17. 我可以通過id直接訪問DOM元素嗎?
- 18. 是否可以使用c指針訪問Lua表元素?
- 19. Dart:如何遍歷DOM元素
- 20. 是否可以加速向DOM添加一組元素?
- 21. 隱藏DOM元素是否可以提高性能?
- 22. 是否可以將XSLT轉換應用於DOM元素?
- 23. 是否可以在選項元素中嵌套任何DOM元素?
- 24. Dart可以在其他窗口中操作HTML元素嗎?
- 25. 是否可以在打開的JavaScript窗口中訪問DOM?
- 26. 背景頁面是否可以訪問共享DOM?
- 27. Javascript:訪問沒有getElementById的DOM元素
- 28. 無法訪問動態DOM元素
- 29. jQuery AJAX比訪問DOM元素要慢
- 30. DOM加載後的jQuery訪問元素
'x-some-component'是HTML元素的id嗎?這與查詢('x-some-component')有什麼不同?這並不意味着我必須在某處存儲該ID? – brooks94
不,x-some-component是元素名稱([WebUI示例](http://www.dartlang.org/articles/web-ui/#components)中的x-click-counter)。查詢將遍歷DOM並找到具有匹配ID /類的節點,而getShadowRoot()會自動返回相應的節點。考慮一個點擊的組件,將其顏色改爲紅色。現在將這兩個組件添加到頁面中。使用查詢,無論您單擊第一個還是第二個組件,第一個組件都將始終更改顏色。使用getShadowRoot(),更改顏色的組件將成爲您單擊的組件。 –