我正在爲使用TypeScript編寫的Power BI構建自定義視覺效果。在我的課程的構造函數中,我寫this.svg = d3.select(this.target).append("svg").attr("id", "svg");
(this.target
只是包含一個標準的HTML元素,對於這個問題並不重要)。從d3選擇中獲取原始元素
我的問題是,使用this.svg
,我如何才能獲得原始SVG元素?從谷歌搜索,似乎我應該能夠使用this.svg.node()
,但一定是有什麼微妙的事情,使得這個不同的「真實」元素......
當我運行console.log(this.svg.node())
,其輸出出現完全一樣console.log(document.getElementById("svg"))
在Chrome的開發人員窗口中,這很好。
但是,使用表達式this.svg.node().getBoundingClientRect()
會導致我的TypeScript無法編譯,因爲出錯Property 'getBoundingClientRect' does not exist on type 'Node'
,而document.getElementById("svg").getBoundingClientRect()
返回正確的值。
如何獲取this.svg
所指的真正原始DOM元素?
我正在使用d3 v3。