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

时间:2013-04-16 21:54:40

标签: raphael

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

 element.node

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

1 个答案:

答案 0 :(得分:5)

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

由于您知道此特定ID,并且您将Raphael Paper实例引用为paper变量,因此您可以获得以下元素:

paper.getById(node.raphaelid)

实际上,这是完全无证的。 RaphaelJS documentation (Paper.getById section)

中仅记录了getById方法

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

请查看此jsfiddle about getting raphaelid

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>

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;

文字结果

  

rect.node.raphaelid:0

     

rect2.node.raphaelid:1

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