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

我想动态创建一个看起来像地图图例的列表。

所以应该有一个彩色矩形和矩形之外的文本。我想将图例组织为无序列表。

但是,我无法显示 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);

});


拉风的咖菲猫
浏览 86回答 1
1回答

波斯汪

使用document.createElementNS,&nbsp;https://developer.mozilla.org/en-US/docs/Web/API/Document/createElementNSsvg 的命名空间是document.createElementNS("http://www.w3.org/2000/svg","svg");
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5