gpt4 book ai didi

javascript - 即使使用命名空间后也无法附加到 SVG

转载 作者:行者123 更新时间:2023-11-28 18:26:14 25 4
gpt4 key购买 nike

我正在尝试使用 JavaScript 将 circle 附加到 svg 元素。当我创建圆圈时,我发现您应该使用 createElementNS 而不是 createElement。我这样做了,圆圈确实出现在 HTML 中,但它仍然没有出现在页面中。这是我的代码:

let ns = 'http://www.w3.org/2000/svg';
let svg = document.getElementsByTagName('svg')[0];
let circle = document.createElementNS(ns, 'circle');

circle.setAttributeNS(ns, 'cx', 100);
circle.setAttributeNS(ns, 'cy', 100);
circle.setAttributeNS(ns, 'r', 10);
circle.style.fill = 'red';

svg.appendChild(circle);

输出为:

<svg><circle cx="100" cy="100" r="10" style="fill: red;"></circle></svg>

但是 View 是空的。查看 Codepen here.

最佳答案

使用createElementNS创建圆形元素后,您不需要setAttributeNS,您应该使用setAttribute函数:

var ns = 'http://www.w3.org/2000/svg';
var svg = document.getElementsByTagName('svg')[0];
var circle = document.createElementNS(ns, 'circle');

circle.setAttribute('cx', 100);
circle.setAttribute('cy', 100);
circle.setAttribute('r', 10);
circle.style.fill = 'red';

svg.appendChild(circle);
svg{ width: 100%; height: 100%; background-color: blue; }
<svg></svg>

关于javascript - 即使使用命名空间后也无法附加到 SVG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39069903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com