在<circle>标记中添加ID无效</circle>

时间:2011-09-25 18:25:44

标签: javascript jquery graphics svg raphael

我正在尝试使用jQuery <circle>.attr()标记添加id属性:

r.circle(x, y, 6).attr({fill: "#ff0000", stroke: "none", id: "cir1"}),

问题在于它添加了fillstroke属性,但未添加id。我知道,因为我看了谷歌Chrome DEV,它没有显示id

4 个答案:

答案 0 :(得分:1)

根据文档,您无法使用id添加attr。见这里:

http://raphaeljs.com/reference.html#attr

如果您需要id作为挂钩,也许您可​​以设置title,这是允许的。


旁白:

很难从文档中判断是否允许这样做,但是您可以将id添加为自定义attr并将其添加到引号中吗?

"id" : "cir1"

答案 1 :(得分:0)

显然,您无法通过attr设置id。

只需获取节点参考并直接设置即可。

r.circle(...).node.id = 'cir1';

答案 2 :(得分:0)

这对我来说很好。

证明:打开this test page并打开您的开发者控制台。您将在输出中看到"yay 1 circle",这是此JavaScript代码的结果:

var head = $('circle:eq(1)');
head.attr({id:'yay'});
console.log(
  head[0].id,
  $('#yay').length,
  document.getElementById('yay').tagName
);

从中您可以看到id属性都是a)在DOM元素上设置,b)用作通过jQuery或DOM方法访问元素的方法。

你能提供一个工作测试用例,也许是使用Raphael,显示失败了吗?

答案 3 :(得分:-2)

在某些情况下,您不需要ID。

您可以使用关键字this