动态添加完整的svg形状(使用纯Javascript)

动态添加完整的svg形状(使用纯Javascript),javascript,svg,Javascript,Svg,我想使用JS创建的SVG中的路径绘制一个正方形。但浏览器不接受这一点: Javascript: var svg = document.createElement('svg'); svg.width = "200"; svg.height = "200"; document.body.appendChild(svg); var path = document.createElement('path'); path.setAttribute('d','M100,0 L200,100 100,200

我想使用JS创建的SVG中的路径绘制一个正方形。但浏览器不接受这一点:

Javascript:

var svg = document.createElement('svg');
svg.width = "200";
svg.height = "200";
document.body.appendChild(svg);

var path = document.createElement('path');
path.setAttribute('d','M100,0 L200,100 100,200 0,100Z');
path.setAttribute('fill','red');
svg.appendChild(path);
HTML输出:

<svg width="200" height="200">
  <path d="M100,0 L200,100 100,200 0,100Z" fill="red"/>
</svg>

使用CreateElements而不是createElement。

使用CreateElements而不是createElement。

createElement只能用于创建html元素。要创建SVG元素,必须使用CreateElements并提供SVG名称空间作为第一个参数

还有document.body.appendChild'svg';可能是一个输入错误,因为您希望添加svg元素,而不是包含文本“svg”的字符串

var svg=document.createElements'http://www.w3.org/2000/svg","svg",; setAttribute'width','200'; setAttribute'height','200'; document.body.appendChildsvg; var path=document.createElements'http://www.w3.org/2000/svg","路径",; path.setAttribute'd','M100,0 l200100 100200 0100z'; setAttribute'fill','red';
svg.appendChildpath createElement只能用于创建html元素。要创建SVG元素,必须使用CreateElements并提供SVG名称空间作为第一个参数

还有document.body.appendChild'svg';可能是一个输入错误,因为您希望添加svg元素,而不是包含文本“svg”的字符串

var svg=document.createElements'http://www.w3.org/2000/svg","svg",; setAttribute'width','200'; setAttribute'height','200'; document.body.appendChildsvg; var path=document.createElements'http://www.w3.org/2000/svg","路径",; path.setAttribute'd','M100,0 l200100 100200 0100z'; setAttribute'fill','red';
svg.appendChildpath;是的。我不知道在哪里放置setAttribrens或createElements。这就是为什么我问了一个尽可能简单的问题,以便快速得到一个简单而完整的答案:是的。我不知道在哪里放置setAttribrens或createElements。这就是为什么我问了一个尽可能简单的问题,以便快速得到一个简单而完整的答案: