Javascript 这个SVG标记发生了什么?

Javascript 这个SVG标记发生了什么?,javascript,dom,svg,appendchild,createelement,Javascript,Dom,Svg,Appendchild,Createelement,我对SVG文件有问题(下面的代码)。上下文是,我希望文件所在的HTML在加载后主动更改元素内的文本。我有一个问题,所以我开始缩小可能性,直到它被限制在一个地方: <text xmlns="http://www.w3.org/2000/svg" id="svgText" transform="matrix(1 0 0 1 225 260)" text-anchor="middle" fill = "#80ECFF" font-family="'MyriadPro-Regular'" fon

我对SVG文件有问题(下面的代码)。上下文是,我希望文件所在的HTML在加载后主动更改元素内的文本。我有一个问题,所以我开始缩小可能性,直到它被限制在一个地方:

<text xmlns="http://www.w3.org/2000/svg" id="svgText" transform="matrix(1 0 0 1 225  260)" text-anchor="middle" fill = "#80ECFF" font-family="'MyriadPro-Regular'" font-size="50" onload=
    "   
        var svgText = document.getElementById('svgText');
        var newLine = document.createElement('tspan');
        newLine.setAttribute('x' , '0');
        newLine.setAttribute('dy' , '1.2em');
        newLine.appendChild(document.createTextNode('point'));
        document.importNode(newLine , true);
        svgText.appendChild(newLine);
    ">
        <tspan x = '0' dy = '1.2em'>other point</tspan>
        test
     </text>

另一点
测试
我认为“document.importNode”部分是不必要的,因为节点已经位于该文档的正确位置,但是我认为它不会造成任何损坏。 这段代码中最奇怪的事情发生了:节点是在DOM中创建的,但它无法在其上放置元素属性,就好像它实际上不存在一样。 我尝试过的每个浏览器都会显示节点被放置在文本元素中,但每次它都会遭受类似幽灵的痛苦,就像浏览器知道它在那里一样,但实际使用它是一种犯罪


任何帮助都将不胜感激;我已经研究这个问题两个多小时了,我似乎是唯一一个遇到过这个问题的人。

正如Ian所说,您需要使用createElements()将新元素放入SVG名称空间

document.createElementNS('http://www.w3.org/2000/svg', 'tspan');

我没有这样玩过SVG,但是您不需要CreateElements和setAttributeNS以及名称空间吗?谢谢您的帮助。