добавление текста в документ SVG в JavaScript - PullRequest
16 голосов
/ 14 февраля 2012

Я пытаюсь добавить текстовый элемент к элементу <g> в документе SVG, используя javascript, мой код выглядит следующим образом

function addText(x,y,val){
var newtxt = document.createElementNS("http://www.w3.org/2000/svg", "text");
$newtxt = $(newtxt);
$newtxt.attr('x',x);
$newtxt.attr('y',y);
$newtxt.attr('font-size','100');
$newtxt.val(val);

$newtxt.appendTo($('g'));}

, но когда я его запускаю, текст не отображается.элемент добавляется к элементу <g>, но значение не установлено .. есть идеи, как это решить ??

Ответы [ 2 ]

45 голосов
/ 14 февраля 2012

Я думаю, вам нужно создать текстовый узел для хранения строки и добавить его к текстовому элементу SVG.

var newText = document.createElementNS(svgNS,"text");
newText.setAttributeNS(null,"x",x);     
newText.setAttributeNS(null,"y",y); 
newText.setAttributeNS(null,"font-size","100");

var textNode = document.createTextNode(val);
newText.appendChild(textNode);
document.getElementById("g").appendChild(newText);

Есть рабочий пример на http://old.carto.net/papers/svg/manipulating_svg_with_dom_ecmascript/.

3 голосов
/ 11 августа 2016
var txt = document.createElementNS(svgNS, 'text');
txt.setAttributeNS(null, 'x', x);
txt.setAttributeNS(null, 'y', y);
txt.setAttributeNS(null,'font-size','100');
txt.innerHTML = val;
document.getElementById("g").appendChild(txt);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...