使用文本

时间:2018-03-16 13:10:14

标签: javascript svg raphael morris.js

我尝试使用JavaScript创建一个带有文本的SVG矩形。我已经有了矩形(由morris.js生成,图表库),但似乎无法获取文本。

我想要实现的输出看起来有点像这样:



<svg>
  <g>
    <rect x="0" y="0" width="100" height="100" fill="red"></rect>
    <text x="0" y="50" font-family="Verdana" font-size="35" fill="blue">Hello</text>
  </g>
</svg>
&#13;
&#13;
&#13;

现在这是我的代码(因为在这里未定义了rectangleElement,所以代码片段不会运行):

&#13;
&#13;
console.log(rectangleElement);
/* output:
<rect x="1205.5019308035712" y="0" width="193.5206919642857" height="307" r="0" rx="0" ry="0" fill="#E5E5E5" stroke="none" fill-opacity="0.8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); fill-opacity: 0;"></rect>
*/

var t = document.createElementNS('http://www.w3.org/2000/svg', 'text');
var g = document.createElementNS('http://www.w3.org/2000/svg', 'g');

g.appendChild(t);
g.appendChild(rectangleElement);

console.log(g);
/* output:
<g><text></text></g>
*/
&#13;
&#13;
&#13;

如您所见,rectangleElement未添加到我的论坛(g)。在尝试将矩形附加到组时,我也没有在控制台中出现任何错误。

关于我可能做错的任何想法?

1 个答案:

答案 0 :(得分:0)

我最终自己解决了这个问题。我完全不确定问题是什么,当我在下面添加看似无关的代码时,它开始工作。

var txtElem = document.createElementNS("http://www.w3.org/2000/svg", "text");
txtElem.setAttributeNS(null,"x",20);
txtElem.setAttributeNS(null,"y",40);
var theText = "text";
var theMSG = document.createTextNode(theText);
txtElem.appendChild(theMSG);