如何使用我自己的 id 来识别元素

How to use my own ids to identify an element

我在具有唯一 ID 的数据库中拥有信息。使用 svg.js 绘图时,我想将 id 存储在 svg 中,然后通过从数据库中搜索 id 来找到 svg 元素。

我想到了两个备选方案。

  1. 使用 SVG.select, https://svgjs.dev/docs/2.7/referencing/#using-css-selectors ,即匹配特定 class 的 returns 元素。然后我可以给每个元素一个特定的 class 从 db-id

    计算出来的名字
  2. 使用 data(),https://svgjs.dev/docs/2.7/manipulating/#data 来存储和获取我的 db-id。

有什么建议或意见吗?

我尝试使用 select,上面的备选方案 1,但没有成功。

然后我通过设置 id 尝试了第三种选择:

circle1.attr('id', 'myid1');

然后

var 元素 = SVG.get('myid1')

这行得通,但我不确定设置 id 是否会破坏 svg.js

的实现

svg.js v2.x

在 svg.js 中使用您自己的 ID 完全没问题。 创建元素后,只需将 id 传递给 id 方法即可:

canvas.rect(100, 200).id('myId')

您稍后可以使用 SVG.get('myId')SVG.select('#myId').first() 获取该元素。 确保尽快设置 id。它们在链接图案填充和渐变时很重要。

svg.js v3.x

与上面相同,但您现在使用 SVG('#myId') 来检索元素或 SVG.find('#myId')[0]