在raphael中为多个SVG提供ID

时间:2012-11-21 15:06:41

标签: javascript svg raphael

我有多个SVG,我想添加一个ID。问题是它们是由Raphael对象自动创建的。 是否有一种简单的方法可以在Raphael纸上添加ID? (请注意,有多篇论文)

1 个答案:

答案 0 :(得分:2)

Raphael中的所有对象都返回一个shape元素,您可以使用node属性来访问raw元素。从那里可以非常简单地给元素一个ID。

例如,要创建一个ID为

的矩形
paper.rect(0, 0, 300, 300, 0).attr({fill: "orange", stroke: "none"}).node.setAttribute('id', 'myElement');

一个工作小提琴,看看它在行动:http://jsfiddle.net/CwmZr/1/

请注意,Raphael可能并不总是使用SVG。在旧版本的IE中,它将使用VML,因此node可能会引用VML元素,而不是SVG元素。

修改

如果要设置纸质对象的ID(<svg />元素),可以执行以下操作:

var paper = //get the paper object
paper.canvas.setAttribute('id', 'mySvgElement');