2017-02-12 10 views
0

Ich versuche, Text zu einem Svg-Element mit Javascript hinzuzufügen.Text in SVG erscheint nicht

Hier ist mein Javascript-Code:

var svg=document.getElementById("svgtext"); 
var newText = document.createElementNS(svg,"text"); 
newText.setAttributeNS(null,"x",0);  
newText.setAttributeNS(null,"y",50); 
newText.setAttributeNS(null,"font-size","100"); 
newText.setAttributeNS(null,"fill","black"); 
var textNode = document.createTextNode("Hello World"); 
newText.appendChild(textNode); 
document.getElementById("gText").appendChild(newText); 

und dies ist der HTML

  <svg id="svgtext" width=160px height=250px> 
       <g id="gText"> 
        <text x="0" y="15" fill="black">SVG!</text> 
       </g> 
     </svg> 

Wie Sie sehen können, wenn ich manuell einen Text hinzufügen, es funktioniert perfekt. Wenn ich es mit Javascript versuche, kann ich es im Chrome-Inspektor-Tool sehen, aber es erscheint einfach nicht auf dem Bildschirm.

Antwort

0

Sie übergeben den falschen Wert an das erste Argument von createElementNS. Es sollte als sein below.§

var newText = document.createElementNS("http://www.w3.org/2000/svg", "text"); 
 
newText.setAttributeNS(null,"x",0);  
 
newText.setAttributeNS(null,"y",50); 
 
newText.setAttributeNS(null,"font-size","100"); 
 
newText.setAttributeNS(null,"fill","black"); 
 
var textNode = document.createTextNode("Hello World"); 
 
newText.appendChild(textNode); 
 
document.getElementById("gText").appendChild(newText);
  <svg id="svgtext" width="160px" height="250px"> 
 
       <g id="gText"> 
 
        <text x="0" y="15" fill="black">SVG!</text> 
 
       </g> 
 
     </svg>

+0

Das ist richtig, wir danken Ihnen sehr viel: D –