动态创建的SVG元素不显示
dynamically created SVG element not displaying
我试图用纯JavaScript绘制SVG矩形。它没有显示。
但是当我在浏览器控制台中运行document.getElementById('rect1')
时,矩形元素存在。当我将HTML从控制台复制并粘贴到HTML文件中时,矩形就会正确显示。因此,看起来好像正确的代码被添加到文档中,但元素没有显示。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
</head>
<body>
<div>
<svg id="test" width="500" height="500">
<!-- code copied from browser console works
<rect x="30" y="60" width="50" height="80" style="stroke:#000000; fill:none;" id="rect1">
</rect> -->
</svg>
<svg id="main" width="500" height="500"></svg>
</div>
<script src="./src/shapes.js"></script>
</body>
</html>
JavaScript: function addSvgElement() {
var rect = document.createElement("rect");
rect.setAttribute('x', 30);
rect.setAttribute('y', 60);
rect.setAttribute('width', 50);
rect.setAttribute('height', 80);
rect.setAttribute('style', "stroke:#000000; fill:none;");
rect.id = "rect1";
var svg = document.getElementById('main');
svg.appendChild(rect);
}
addSvgElement(); // adds correct code, but element doesn't show up
document.createElement("rect");
将创建一个未知的HTML DOM元素。您必须使用正确的名称空间来创建SVG DOM元素。
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
相关文章:
- javascript来显示元素属性
- 使用JavaScript或jQuery隐藏和显示元素
- 如何在Angular JS中滚动显示元素
- 如何在使用jQuery应用display:none后正确显示元素
- 仅使用Javascript隐藏/显示元素,而不会弄乱DOM
- jQuery单击并显示元素列表
- 键盘没有在Android和BlackBerry中显示元素焦点
- 在CSS转换期间显示元素的大小值
- 当我们关注jQuery时,只显示元素
- 包含方法和突出显示元素的问题
- JS/JQuery隐藏元素,更改文本,显示元素
- 如何显示元素的一部分,并在单击时切换到所有元素
- 在隐藏元素中显示元素
- 当PROTRACTOR元素后面有元素时,我怎么能知道当前的显示元素
- 在mouseover上显示元素在mouseleave上隐藏
- jquery显示元素是否具有类和特定值的内容
- 不能在复选框旁边显示元素
- 动态显示元素上的JavaScript触摸端;不要开火
- 点击JQuery/HTML5显示元素的索引/位置
- AngularJS:如何默认显示元素,并在按下按钮时切换