I am successfully loading via AJAX some svg from external file:
$("#svg").load(svgUrl + " svg", function() {
// do stuff
});
My HTML looks like that:
<div id="svg" ...>
<svg ...>
...
</svg>
</div>
I can see the graphics just fine. Now I want to add some additional svg elements to the loaded svg. I changed my script to:
$("#svg").load(svgUrl + " svg", function() {
$("svg").append("<g id='compass'></g>");
// do stuff
});
For some reasons the added element appears as hidden in firebug and no matter what xml I put inside of it I can't see it on my webpage.
Update:
Thanks to echo-flow I was able to append to my SVG. Now if I try to load my compass svg from another xml file it doesn't appear in my DOM. At the moment my code looks like:
$("#svg").load(obj.svgUrl + " svg", function() {
var svgns = "http://www.w3.org/2000/svg";
var g = document.createElementNS(svgns,"g");
g.setAttributeNS(null,'id','compass');
$("svg").append(g);
$("#compass").load("files/svg/compass.xml");
});
If I look in console in firebug I see that result of the AJAX request for compass markup is successful but is empty.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…