2012-10-05 56 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元素......)。