Javascript 使用appendChild()在svg中放置文本
我试图使用Javascript 使用appendChild()在svg中放置文本,javascript,html,css,svg,Javascript,Html,Css,Svg,我试图使用appendChild()方法在SVG中插入文本。我需要将此方法用于我正在编写的实际代码 在所附的代码中,您会发现我正在尝试使用appendChild()方法在SVG中编写字符串“你好吗?”。但是它不显示。我使用Chrome开发者工具检查了执行情况,myTextElement和myText实际上是在代码中执行的。不过,我不明白为什么它没有被显示出来。你能帮忙吗 var mysvg=document.getElementById(“mysvg”) var myTextElement=d
appendChild()
方法在SVG中插入文本。我需要将此方法用于我正在编写的实际代码
在所附的代码中,您会发现我正在尝试使用appendChild()
方法在SVG中编写字符串“你好吗?”。但是它不显示。我使用Chrome开发者工具检查了执行情况,myTextElement
和myText
实际上是在代码中执行的。不过,我不明白为什么它没有被显示出来。你能帮忙吗
var mysvg=document.getElementById(“mysvg”)
var myTextElement=document.createElement(“文本”);
var myText=document.createTextNode(“你好吗?”)
myTextElement.appendChild(myText);
appendChild(myTextElement)代码>
圆圈{
填充不透明度:0.5;
笔画宽度:4;
填充:#3080d0;
行程:#3080d0;
不透明度:0.6;
}
你好
在我看来,
中的
元素需要x
和y
属性来显示文本(否则它们将默认为0
)。您可以在
中设置文本元素的属性:
我确信这些值不是您想要的,但是它们应该允许您查看插入的元素
要删除的另一个错误源-我将在
元素末尾之前添加
标记,而不是在
中。我不确定,但是如果脚本元素在哪里,那么在脚本运行时可能不会定义与
对应的DOM元素。在我看来,
中的
元素需要x
和y
属性来显示文本(否则它们将默认为0
)。您可以在
中设置文本元素的属性:
我确信这些值不是您想要的,但是它们应该允许您查看插入的元素
要删除的另一个错误源-我会在
元素末尾之前添加
标记,而不是在
中。我不确定,但如果脚本元素位于何处,则在脚本运行时可能不会定义与
对应的DOM元素。<text
用于演示
var mysvg=document.getElementById(“mysvg”);
var myTextElement=document.createElements(“http://www.w3.org/2000/svg“,”文本“);
var myText=document.createTextNode(“你好吗?”);
setAttribute(“x”,“0”);
setAttribute(“y”,“110”);
setAttribute(“填充”、“蓝色”);
setAttribute(“字体系列”、“Verdana”);
setAttribute(“字体大小”,“55”);
myTextElement.appendChild(myText);
mysvg.appendChild(myTextElement);
圆圈{
填充不透明度:0.5;
笔画宽度:4;
填充:#3080d0;
行程:#3080d0;
不透明度:0.6;
}
你好
改进了演示用文本的定位
var mysvg=document.getElementById(“mysvg”);
var myTextElement=document.createElements(“http://www.w3.org/2000/svg“,”文本“);
var myText=document.createTextNode(“你好吗?”);
setAttribute(“x”,“0”);
setAttribute(“y”,“110”);
setAttribute(“填充”、“蓝色”);
setAttribute(“字体系列”、“Verdana”);
setAttribute(“字体大小”,“55”);
myTextElement.appendChild(myText);
mysvg.appendChild(myTextElement);
圆圈{
填充不透明度:0.5;
笔画宽度:4;
填充:#3080d0;
行程:#3080d0;
不透明度:0.6;
}
你好
See,你需要一个有效的名称空间。谢谢,瓦迪姆和亚当。在过去的36个小时里,我一直在绞尽脑汁。看,你需要一个有效的名称空间。谢谢,瓦迪姆和亚当。我在过去的36个小时里绞尽脑汁。
myTextElement.setAttribute('x', '20');
myTextElement.setAttribute('y', '20');