如何使用javascript innerHTML更改svg文本标记

时间:2010-11-26 02:14:42

标签: javascript svg raphael

我正在使用raphaeljs,我想在svg中显示html(不仅是文字),

所以我使用这段代码:

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

但是我无法更改svg的内容,所以我在firebug中安装它,

console.log(t.node)

它显示了这个:

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

所以如何在svg上使用javscript更改文本

感谢

3 个答案:

答案 0 :(得分:65)

SVG节点没有innerHTML属性(它们不是HTML)。

改为使用textContent:t.node.textContent='dddd'

答案 1 :(得分:3)

如果svg文本的代码是这样的:

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

如果你正在使用JQuery试试这个:

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

答案 2 :(得分:1)

我能够通过设置<text>元素的textContent属性来实现。如果您知道元素的ID,将使其变得更加容易。

document.getElementById("id-of-text-el").textContent = "My Value";