I am creating SVG elements via JavaScript, and it works fine, but when I create an text SVG element and define it's content, the browser just don't render the value, despite the value is in the code when I inspect it with firebug.
The code is:
var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); svg.setAttribute('xlink','http://www.w3.org/1999/xlink'); svg.setAttribute('width','187'); svg.setAttribute('height','234'); var rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect'); rect.setAttribute('width','187'); rect.setAttribute('height','234'); rect.setAttribute('fill','#fff'); rect.setAttribute('stroke','#000'); rect.setAttribute('stroke-width','2'); rect.setAttribute('rx','7'); var text = document.createElementNS('ttp://www.w3.org/2000/svg', 'text'); text.setAttribute('x', '10'); text.setAttribute('y', '20'); text.setAttribute('fill', '#000'); text.textContent = '2'; svg.appendChild(rect); svg.appendChild(text); var wp = document.getElementById('wrapper'); wp.appendChild(svg);
Here is the jsfiddle link. If you inspect the SVG you will see the value of the text element there, but the browser doesn't render it.
Thanks
Details about each SVG attribute. Details about the SVG DOM API, for interaction with JavaScript. SVG works together with HTML, CSS and JavaScript.
Contrary to the rules in CSS 2.1, the z-index property applies to all SVG elements regardless of the value of the position property, with one exception: as for boxes in CSS 2.1, outer 'svg' elements must be positioned for z-index to apply to them.
You're short an "h" in your namespace
Was
var text = document.createElementNS('ttp://www.w3.org/2000/svg', 'text');
should be
var text = document.createElementNS('http://www.w3.org/2000/svg', 'text');
function createText() { var newText = document.createElementNS(svgNS,"text"); newText.setAttributeNS(null,"x",20); newText.setAttributeNS(null,"y",100); var textNode = document.createTextNode("milind morey"); newText.appendChild(textNode); document.getElementById("firstGroup").appendChild(newText); }
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="300" height="300"> <g id="firstGroup"> <text x="20" y="45" onclick="createText();" font-size=+13px">Click on this text to create a new text.</text> </g> </svg>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With