如何获取使用raphael创建的DOM对象的raphael元素?

The*_*eer 3 raphael

使用Raphael,我可以使用以下代码获取元素的DOM对象的引用:

 element.node
Run Code Online (Sandbox Code Playgroud)

如何获取链接到DOM对象的元素?换句话说,上面函数的逆(例如DOMobject.element).

lib*_*b3d 5

使用RaphaelJS创建的节点有一个raphaelid属性或非常接近的东西,您可以登录Chrome DevTools或类似的.

既然您知道这个特定的ID,并且您将Raphael Paper实例作为paper变量引用,那么您将获得以下元素:

paper.getById(node.raphaelid)
Run Code Online (Sandbox Code Playgroud)

实际上,这是完全无证的.RaphaelJS文档中仅记录了该getById方法(Paper.getById部分)

关于无法在DOM元素上获取raphaelid的评论的更新

请看看这个关于获得raphaelid的jsfiddle.

HTML

<div id="c"></div>
<div><code>rect.node.raphaelid</code> : <span id="i"></span></div>
<div><code>rect2.node.raphaelid</code> : <span id="i2"></span></div>
Run Code Online (Sandbox Code Playgroud)

JS

var paper = Raphael(c,400,400);

var rect = paper.rect(100,100,200,200);
var rect2 = paper.rect(150,150,200,200);

i.textContent = rect.node.raphaelid;
i2.textContent = rect2.node.raphaelid;
Run Code Online (Sandbox Code Playgroud)

文字结果

rect.node.raphaelid:0

rect2.node.raphaelid:1

这一切都与RaphaelJS的2.1.0版本有关