【发布时间】:2017-08-20 00:06:29
【问题描述】:
我使用 svg.js 在 HTML 文档中创建 SVG 图像。但是,我想添加一些不是由 svg.js 创建的元素,而是一些其他代码。我知道有 .svg() 方法获取 SVG 源并添加它,但我有实际的 DOM 元素,它已经是 SVG 的一部分。有没有办法为这个 DOM 元素获取一个 svg.js 对象?
【问题讨论】:
标签: svg.js
我使用 svg.js 在 HTML 文档中创建 SVG 图像。但是,我想添加一些不是由 svg.js 创建的元素,而是一些其他代码。我知道有 .svg() 方法获取 SVG 源并添加它,但我有实际的 DOM 元素,它已经是 SVG 的一部分。有没有办法为这个 DOM 元素获取一个 svg.js 对象?
【问题讨论】:
标签: svg.js
您正在搜索的是 SVG.adopt() 方法,它接受一个节点并返回一个 SVG.js 对象。
您还可以使用 SVG.select() 方法,该方法采用 css 选择器并返回一组 SVG.js 元素。因为它是一个集合(某种数组),所以您需要使用 SVG.select(something).get(0) 获取第一个元素
【讨论】:
2.3.2 中找不到SVG.adopt()。文档中提到了一个名为 absorb 的扩展,但该文档又说它现在包含在 svg.js 中。 SVG.select() 工作。谢谢!
SVG.adopt 包含在 2.0.0 中,而 absorb 已弃用(仅对 svg.js v1.x.x 有用)。文档中没有提到adopt,因为获取元素的常用方法是使用SVG.select。但是:特别是对于有一个节点的用例,它非常适合