2011-09-25 18 views
2

我想用一个id属性添加到<circle>标签jQuery的.attr()添加一个ID,<circle>标签不工作

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

的问题是,它增加了fillstroke属性,但不id。我知道,因为我看着Google Chrome DEV,并没有显示id

+0

不,我的意思是标签 – Shawn31313

+0

如果您尝试单独添加'id',没有'fill'或'stroke'会发生什么? –

+0

没有...它仍然无法正常工作。 我正在使用Raphael Framework – Shawn31313

回答

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方法访问元素的方法。

你可以提供一个工作测试用例,也许使用拉斐尔,显示这个失败?

1

根据文档,你可以不使用attr添加id。在这里看到:

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

如果需要id作为一个钩子,也许你可以设置一个title,这是允许的。


旁白:

很难从文档说,如果这是允许的,但也许你可以把它放在引号添加id为自定义attr

"id" : "cir1" 
+0

你是什么意思,但使用标题?怎么样? – Shawn31313

+1

嗯,我不确定你在用什么'id',但是如果你想用它来引用这个圆圈,也许你可以用'title'属性来代替。 –

+1

引用像这样:'$('circle [title =“cir1”]')'在你设置标题后 – Nathan

0

显然,你不能设置id通过attr。

只需获取节点引用并直接设置即可。

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

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

您可以使用关键字this