当前位置: 首页 > 面试题库 >

使用DOM将SVG元素添加到现有SVG中

李良策
2023-03-14
问题内容

我有一个类似于以下代码的HTML构造:

<div id='intro'>
<svg>
//draw some svg elements
<svg>
</div>

我希望能够使用javascript和DOM向上面定义的SVG中添加一些元素。我将如何完成?我在想

var svg1=document.getElementById('intro').getElementsByTagName('svg');
svg1[0].appendChild(element);//element like <line>, <circle>

我对使用DOM或如何创建要传递给appendChild的元素不是很熟悉,因此请帮助我解决这个问题,或者向我展示解决此问题的其他替代方法。非常感谢。


问题答案:

如果要创建HTML元素,请使用document.createElement函数。SVG使用名称空间,这就是为什么必须使用document.createElementNS函数的原因。

var svg = document.getElementsByTagName('svg')[0]; //Get svg element
var newElement = document.createElementNS("http://www.w3.org/2000/svg", 'path'); //Create a path in SVG's namespace
newElement.setAttribute("d","M 0 0 L 10 10"); //Set path's data
newElement.style.stroke = "#000"; //Set stroke colour
newElement.style.strokeWidth = "5px"; //Set stroke width
svg.appendChild(newElement);

这段代码将产生如下内容:

<svg>
 <path d="M 0 0 L 10 10" style="stroke: #000; stroke-width: 5px;" />
</svg>


 类似资料:
  • 问题内容: 我在SVG教程中找到了此示例,该教程说明了如何将事件处理程序用于SVG元素。看起来像下面的代码: 但是,这似乎不起作用。当我单击该元素时,没有任何反应。 也许重要的是要提到我正在使用PHP从PHP脚本内部显示SVG的事实。另外,请注意,使用AJAX和将PHP脚本生成的内容带入页面。 这可能与它有关吗?非常感谢您的帮助。 问题答案: 似乎所有JavaScript都必须包含在SVG中才能运

  • 问题内容: 我正在尝试将onClick事件添加到现有的svg。现在我有这个: 这 有点 起作用,但不完全是…当我单击该组时会触发该事件,但是可单击的“区域”与我想要可单击的组不同(在我看来,这是完全随机的)。 有没有更好的方法来向元素添加事件(使用React?)? 问题答案: 甲元件是一个空的容器; 它本身不能触发事件。 如果运行此示例,将会看到可以通过单击元素的子级来触发事件,但是如果单击它们之

  • 我的D3.js代码生成以下HTML(取自inspect元素) 路径呈现一个底部有文本的圆圈。 最终,我希望文本位于SVG元素边界内的圆圈下方。如果SVG元素更大,G元素呈现得更大。我需要控制G元素的大小或路径元素的大小。 粗略的谷歌搜索没有多大帮助 谢谢你的洞察力。

  • 问题内容: 我需要将SVG图形添加​​到PDF文件中。 使用iText7是否有可能? 使用iText5: 我在以下页面中发现了这一点: PdfPTable和PdfTemplate 有一种创建类似于Template的方法: 如何创建Graphics2D? 问题答案: 巧合的是,我们今天发布了SVG实现。我们目前尚不支持全部功能集,我们仍将在第二季度及以后的时间里进行开发,但是您已经可以使用它了。该工

  • 我试图在TypeScript中创建一个格式正确的SVG元素: 但是,在中出现以下错误

  • 问题内容: 我想使用命令将元素添加到JSON文件中的数组,但是不起作用。 文件: 我正在使用此命令: 这是我希望输出看起来的样子: 问题答案: 过滤器中的部件将新元素添加到现有数组。您可以使用类似的过滤器: 为避免使用硬编码的长度值并动态添加新元素,请使用,它返回长度,该长度可用作下一个数组索引,即 (或)根据评论中峰的建议,仅使用运算符 产生所需的输出: 使用jq-play试运行并优化您想要的任