2010-11-26 18 views
15

i wurde mit raphaeljs ändern, und ich will html (nicht nur Text) in svg zeigen,wie svg Text-Tag mit Hilfe von Javascript innerHTML-

so verwende ich diesen Code:

var r = Raphael("holder", 200, 300); 
var t = r.text(10, 10, "ssdwqdwq"); 
t.node.innerHTML='dddd' 

aber i kippe den Inhalt des svg ändern, so tröste ich es in Firebug,

console.log(t.node) 

es diese zeigen:

<text x="10" y="13.5" text-anchor="middle" style="font: 10px "Arial";" font="10px "Arial"" stroke="none" fill="#000000"> 
mit javscript auf svg

so wie den Text ändern

dank

Antwort

50

SVG Knoten haben keine Eigenschaft innerhtml (sie sind nicht HTML).

Verwendung textcontent statt: t.node.textContent='dddd'

+0

Dank und wie man ändere den Text in HTML? zB: fügen Sie

ddd
zu t.node – zjm1126

+0

hinzu Sie werden wahrscheinlich so etwas brauchen (das zweite Beispiel ist verrückt!): http://ajaxian.com/archives/foreignobject-hey-youve-got-html-in-my-svg – Zecc

+0

Dies ist auch relevant: http://stackoverflow.com/questions/4118769/native-button-tag-inside-svg-canvas/4120189#4120189 – jbeard4

2

wenn der Code für den SVG-Text ist wie folgt:

<text id="id-of-the-text"> old value</text> 

wenn Sie verwenden JQuery dies versuchen:

$("#id-of-the-text").text("new-value");