使用 appendChild 添加 SVG 元素不生效

  • Post author:
  • Post category:其他


在使用 SVG 时,需要使用 appendChild 来添加元素。但是如下的写法是不生效的:


let newElement = document.createElement('rect');
newElement.setAttribute('fill','orange');
newElement.setAttribute('width','200');
newElement.setAttribute('height','200');
document.getElementById('svg-drawing').appendChild(newElement);

在页面的’元素‘中可以看到加入的 rect,但是没有被渲染。

这时,可以采用如下的写法:


let newElement = document.createElementNS('http://www.w3.org/2000/svg','rect');
newElement.setAttribute('fill','orange');
newElement.setAttribute('width','200');
newElement.setAttribute('height','200');
document.getElementById('svg-drawing').appendChild(newElement);

即在创建 svg 元素时,需要指定

svg 的 namespace



版权声明:本文为nju_zjy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。