Assuming this:
I haven't seen someone mention this method but document.createElementNS()
is helpful in this instance.
You can create the elements using vanilla Javascript as normal DOM nodes with the correct namespace and then jQuery-ify them from there. Like so:
var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'),
circle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');
var $circle = $(circle).attr({ //All your attributes });
$(svg).append($circle);
The only down side is that you have to create each SVG element with the right namespace individually or it won't work.