2011-09-25 48 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