我正在尝试使用jQuery <circle>
向.attr()
标记添加id属性:
r.circle(x, y, 6).attr({fill: "#ff0000", stroke: "none", id: "cir1"}),
问题在于它添加了fill
和stroke
属性,但未添加id
。我知道,因为我看了谷歌Chrome DEV,它没有显示id
!
答案 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
。