2012-10-05 101 views
0

我有一個包含一組,看起來像這樣一個SVG文件:逃逸SVG嵌入文本

<g xml:id="id10883"> 
    <textArea fill="#ffffff" xml:id="id1900" xml:space="preserve">[SPX][departure]</textArea> 
</g> 

[SPX] [出發]從一個JavaScript地圖取代運行時通過適當的值。我怎麼能輸入類似的數據作爲填充值,例如

<g xml:id="id10883"> 
    <textArea fill="[SPX][color]" xml:id="id1900" xml:space="preserve">[SPX][departure]</textArea> 
</g> 

回答

1

爲什麼不直接向元素添加類?

<g xml:id="id10883"> 
    <textArea class="spx_color" xml:id="id1900" xml:space="preserve">[SPX][departure]</textArea> 
</g> 

然後,你可以簡單地做到以下幾點:

var spx_color = document.getElementsByClassName("spx_color"); 
for (var i = 0, l = spx_color.length; i < l; ++i) { 
    spx_color[i].setAttribute("fill", "#ffffff"); 
} 


如果你想保持你的佔位符[SPX][color]不過,你可以做這樣的事情:

var elements = document.getElementsByTagName("*"); 
for (var i = 0, l = elements.length; i < l; ++i) { 
    if (elements[i].getAttribute("fill") == "[SPX][color]") { 
     elements[i].setAttribute("fill", "#ffffff"); 
    } 
} 

注意這個代碼並不是真正有效的,因爲它遍歷所有的DOM元素。所以你應該根據你現有的代碼改變它(例如只得到textArea元素......)。