2011-11-06 221 views
0

我有一个SVG与拉斐尔2.0看起来像这样创建:如何更改或添加ID到SVG?

<div class="stave"> 
<svg height="342" version="1.1" width="512" xmlns="http://www.w3.org/2000/svg" 
style="overflow: hidden; position: relative;" viewBox="0 410 1300 80" 
preserveAspectRatio="meet"> 
........ 
</svg> 
</div> 

我只是想一个ID设置为SVG标签!我该怎么做? JQUERY或RAPHAEL 2.0? 我看到很多答案,但没有为我工作。

谢谢你帮

+0

你起诉什么代码来生成SVG。这是整个页面上唯一的SVG标签吗? –

回答

0

有了jQuery,你可以使用element selector:nth-child()

事情是这样的:(jsFiddle

<div class="frame"> 
    <div>div1</div> 
    <div>div2</div> 
    <div>div3</div> 
</div> 
<script type="text/javascript"> 
    $('div').css({'font-weight':'bold'}); 
    $('.frame div:nth-child(2)').attr("id","newId"); 
    $('#newId').css({'color':'#f30'}) 
</script> 

当然,你的情况,选择将$('svg')

+1

喜欢它!我首选这一个因为我想用jQuery来做大多数事情! – trouble

+0

@trouble我也爱jQuery,但这是一个悲伤的评论。 – Pierre

+0

@Pierre呵呵!!为什么?? – trouble

6
document.getElementsByTagName('svg')[0].id = 'svg_id'; 

,如果你只有一个页面上SVG标签这应该工作,如果你已经创建使用拉斐尔的标签后调用它。

如果您尚未使用拉斐尔的标签,你可以使用这样的事情:

<svg id='svg_id'></svg> 

随着其他属性,当然。

+0

太棒了!也适用于我!谢谢。 – trouble

2
var paper=Raphael(0, 0, 342, 512) 
paper.canvas.id='id_svg1' 
+4

请解释你的代码是什么以及为什么它能解决问题。只包含代码的答案(即使它正在工作)通常不会帮助OP了解他们的问题。 – SuperBiasedMan

+0

作为'paper.canvas'你访问正确的一个SVG' ludeq