如何将svg添加到无序列表?

问题描述 投票:0回答:1

我想动态创建一个看起来像地图图例的列表。因此,除了矩形外,还应该有一个彩色矩形和一个文本。我想将图例组织为无序列表。但是,我无法显示svg。我可以在检查器中看到该元素。这是我的代码:

let grp = ['A', 'B', 'C', 'D'];
let ul = document.createElement('ul');
grp.forEach(g => {
  let li = document.createElement('li');

  let spanSvg = document.createElement('span');
  let svg = document.createElement('svg');
  svg.class = 'svg-legend';
  svg.setAttribute('height', '20');
  svg.setAttribute('width', '40');
  svg.innerHTML = '<rect height="10" width="30" style="fill: rgb(17, 95, 103);"/>';
  spanSvg.appendChild(svg);

  let spanTxt = document.createElement('span');
  let txt = document.createTextNode(g);
  spanTxt.appendChild(txt);
  li.appendChild(spanSvg);
  li.appendChild(spanTxt);
  ul.appendChild(li);

  document.getElementById('div').appendChild(ul);
});
javascript html svg
1个回答
1
投票

使用document.createElementNShttps://developer.mozilla.org/en-US/docs/Web/API/Document/createElementNS

svg的名称空间是

document.createElementNS("http://www.w3.org/2000/svg","svg");
© www.soinside.com 2019 - 2024. All rights reserved.