Javascript 如何从图形中获取具有ID的SVG?

Javascript 如何从图形中获取具有ID的SVG?,javascript,svg,mxgraph,Javascript,Svg,Mxgraph,目前,我正在使用mxGraph编辑一个图形,并根据 编辑图形时,我将数据添加到单元格中,重新标记并基本上用ID标记它们,方法与在EditDataDialog中所做的相同: 类似于此(对于给定单元格,在用户从列表中选择项目后): const newLabel=listItems[listItems.selectedIndex].text; //为标签和其他数据创建容器对象 var doc=mxUtils.createXmlDocument(); var obj=doc.createElement(

目前,我正在使用mxGraph编辑一个图形,并根据

编辑图形时,我将数据添加到单元格中,重新标记并基本上用ID标记它们,方法与在EditDataDialog中所做的相同:

类似于此(对于给定单元格,在用户从列表中选择项目后):

const newLabel=listItems[listItems.selectedIndex].text;
//为标签和其他数据创建容器对象
var doc=mxUtils.createXmlDocument();
var obj=doc.createElement('object');
obj.setAttribute('label',newLabel | |');
//保存额外数据
obj.setAttribute(“我的ID”,listItems[listItems.selectedIndex].dataset[“recId]”);
cell.value=obj`
到目前为止,这一切都很好:我可以将xml保存在数据库中并检索它,然后在GrapherEditor中再次编辑它

我将提取的SVG用作预览图像和只读访问,但SVG不包含我标记mxgraph xml的ID。我需要能够识别SVG中的节点以向其添加事件(在mxgraph之外)

我一直在浏览代码,但没有找到SVG节点的实际创建位置/方式

我想我应该创建一个自定义类型的元素,而不是
object
,并以某种方式注册一个新的翻译,这将使它成为一个SVG
,在这里我将
my_ID
转换为一个自定义属性,最好是一个类。因此,我可以稍后识别并修改这些
节点。有关于如何真正做到漂亮的建议吗?

好的,我自己找到了

在末尾,在
this.drawShape(state,canvas)之间
this.drawText(状态,画布)
我抓取
state.cell.value
,过滤我想要的属性,并将其添加到SVG中最近添加的元素中,如下所示

if ( 
    (state.cell.value !== undefined) && 
    (state.cell.value.hasAttribute('my_ID'))
){                  
    canvas.root.lastElementChild.setAttribute('data-myid',
        state.cell.value.getAttribute('my_ID'));
}