2011-11-06 47 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