在DOM中获取raphael id属性

3

我使用http://readysetraphael.com/将一些SVG转换为Raphael。

下面是生成的代码示例:

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

我查看了attr文档,它没有提到id作为一个合适的属性。同时,id属性也没有添加到DOM中。有没有办法让Raphael将此ID添加到DOM中,以便我可以样式化该元素?
或者,我是否可以通过某种方式遍历所有路径,并轻松地将id属性移动到真正的DOM ID中?
2个回答

5

我之前没有看过readysetraphael.com- 那很不错。

通过Raphael paper元素的forEach方法,遍历给定SVG容器中的所有元素应该是相当简单的:

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

但我必须问一下—既然您已经将SVG纳入了Raphael中,为什么不直接使用Raphael可编程地为其设置样式呢?我出于好奇想知道您的理由。


这是一个很好的问题。我想我习惯于认为样式应该与代码逻辑分开。谢谢你的回答。 - grm
1
我知道你的意思。如果 Raphael 允许将 CSS 类应用于底层节点属性,那该多好啊...但是我看到的所有证据都表明它无法与外部样式表一起使用。希望 Raphael 3.0 能解决这个问题! - Kevin Nielsen
好的。我对 Raphael 还不熟悉,会记在心里的。你的反馈非常有帮助。 - grm

3

您可以通过调用node属性获取底层DOM元素的形状,如下所示:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接