根据我阅读 Raphael.js 源代码的经验,我同意之前的帖子。我所能想到的替换或修改 SVG 的唯一方法是通过替换/修改标记/文档对象模型本身来实现。我想在我的回答中添加一个简短的、通用的解释,为什么会这样。Raphael 被设计成一个 SVG/VML 生成器。也就是说,Raphael 制作 JavaScript 对象,并将它们对应的 SVG/VML 标记附加到 DOM 上。这些对象有许多额外的属性,使它们在 Raphael 框架内工作。通过阅读 SVG 元素的属性编写能够构建出一个 Raphael 对象的插件是可能的,但是我怀疑这样的对象可能没有所有必要的信息来与其他 Raphael 对象共存。当然,目前并不存在这样的解析/重构功能。
昨天我发现glitchsvgicons页面在做这个事情时很有趣。 虽然是以一种非常原始的方式,只是使用正则表达式替换部分内容。 这可能是一个提示:显然,你可以使用旧有的搜索/替换文本部分的方法来处理SVG图标。但这比使用真正的DOM树更容易出现问题...