【问题标题】:Getting the raphael id attribute in the DOM在 DOM 中获取 raphael id 属性
【发布时间】:2012-06-06 12:42:41
【问题描述】:

我已经使用 http://readysetraphael.com/ 将一些 SVG 转换为 Rapahel

以下是生成的代码示例:

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

我查看了 attr 文档,它没有提到 id 作为正确的属性。 id 属性也没有添加到 DOM。有没有办法让 raphael 将此 ID 添加到 DOM 以便我可以设置元素的样式?

或者,我可以以某种方式遍历所有路径并将 id attr 添加到真实的 DOM ID 吗?

【问题讨论】:

    标签: javascript svg raphael


    【解决方案1】:

    我之前没有看过 readysetraphael.com —— 这很漂亮。

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

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

    但我应该问——既然您已经将 SVG 合并到 Raphael 中,为什么不简单地使用 Raphael 以编程方式设置它们的样式?对你的推理的好奇促使我问。

    【讨论】:

    • 这是个好问题。我想我习惯于认为风格应该与代码逻辑分开。谢谢你的回答。
    • 我知道你的意思。如果只有 Raphael 允许将 css 类应用于底层节点属性……但我所看到的所有证据都表明它不适用于外部样式表。希望 Raphael 3.0 能解决这个问题!
    • 好的。我是 Raphael 的新手,我会牢记这一点。您的反馈非常有帮助。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-08-06
      • 2013-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-06
      • 1970-01-01
      • 2017-05-28
      • 1970-01-01
      相关资源
      最近更新 更多