我正在使用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更改文本
感谢
答案 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";