我正在使用d3js,其中lib根據數據創建節點和鏈接。 在某些地方有一些特定的要求,如URL「www.xyz.com/home/user」(這裏是3個字符串「www.xyz.com」,「/ home」,「/ user」)添加多行文本。他們不是單獨的節點,所以我無法找到d3的位置。這只是一個< text>元素,其中有3個< tspan> children。如何獲取tspan元素的位置和寬度
<text id="TaxFilingResource_URL" class="label url" dy="24" dx="30">
<tspan id="TaxFilingResource.URL.1">www.xyz.com</tspan>
<tspan id="TaxFilingResource.URL.2">/home</tspan>
<tspan id="TaxFilingResource.URL.3">/user</tspan>
</text>
和顯示這樣下面
www.xyz.com/home/user
我需要獲得每個< TSPAN>元件的位置和寬度。我的代碼是
var el = document.getElementById(d.source);
x = el.getStartPositionOfChar('').x (or)
x = el.getClientRects().left;
給g元素內的文本的相對位置,但在某些瀏覽器和Mac上它將返回絕對位置。
是否有任何正確的方法來找到JavaScript中與所有瀏覽器一起工作的tspan的位置和寬度(IE必須>第9版)。
[This question](http://stackoverflow.com/questions/442404/retrieve-the-position-xy-of-an-html-element)and [this question](http://stackoverflow.com/問題/ 294250/how-do-i-retrieve-an-html-elements-actual-width-and-height)應該有所幫助。 –