2012-06-01 88 views
3

我已經轉換使用http://readysetraphael.com/獲取在DOM中聖拉斐爾id屬性

這裏一些SVG到Rapahel產生的代碼的示例:

... 
path6233.attr({id: 'path6233' 
... 

我已在ATTR文檔中搜索和它不」不要提到id是一個合適的屬性。添加到DOM的id屬性也不是。有沒有辦法讓拉斐爾將這個ID添加到DOM,以便我可以設置元素的樣式?

另外,我可以以某種方式走所有的路徑,並添加將id屬性輕鬆地移動到一個真正的DOM ID?

回答

5

我之前沒有看到readysetraphael.com - 這很漂亮。

它應該是相當簡單的走路都通過拉斐爾紙元素的forEach方法的規定SVG容器內的元素:

var i = 0; 
paper.forEach(function (el) 
{ 
    el.node.setAttribute("id", "node-" + i++)); 
}); 

但我要問 - 既然你已經有了你的SVGs納入拉斐爾,爲什麼你不會簡單地使用Raphael以編程的方式來設計它們呢?對你的推理的好奇心促使我問。

+0

這是一個很好的問題。我想我習慣認爲風格應該與代碼邏輯分開。感謝您的回答。 – grm

+1

我知道你的意思。如果只有Raphael允許將css類應用於底層節點屬性......但是我所看到的所有證據都表明它不適用於外部樣式表。這裏希望拉斐爾3.0解決這個問題! –

+0

好的。我對拉斐爾很陌生,並會牢記這一點。您的反饋非常有幫助。 – grm

3

您可以通過獲取DOM元素基本形狀這樣做,用的node屬性的調用,就像這樣:

path6233.node.id = 'node-id';