如何更改SVG文本的值?

时间:2015-11-09 19:36:13

标签: javascript svg

我有一个svg文本数组:

var texts = []; //for svg text objects

function create() {
  for(var i=0; i<6; i++) {
     var d = 10;
     var n = d-1;
     var text = document.createElementNS(NS, 'text'); 
     var data = document.createTextNode(d); 
     text.setAttributeNS(null, "id", "text"+i); 
     texts.push(text);
     var t = texts[i];
     document.getElementById('svgOne').appendChild(t); 
     change(n);
     d--;
  }
}

function change(n) {
   //change 
}

如何更改文字“d”的值 - &gt; “N”?
我已经使用了node.nodeValue但是没有工作。

 t.firstChild.value = n;

我不想使用另一个js库。
有没有简单的方法来改变价值?

1 个答案:

答案 0 :(得分:0)

要更改SVG文本元素中显示的文本,可以设置SVG文本元素的子文本节点的nodeValue。例如......

var svgTextElement = document.getElementById("text1");
var textNode = svgTextElement.childNodes[0];
textNode.nodeValue = "New text.";

请注意,您的代码未将文本节点添加到svg文本元素中。你需要调用appendChild()方法。例如......

var text = document.createElementNS(NS, 'text'); 
var data = document.createTextNode(d);
text.appendChild(data);