javascript - SVGO 自定义插件。如何在 removeAttr 之前存储 attr().value
问题描述
我正在尝试为 SVGO 构建一个自定义插件,以批量清理和格式化从 illustrator 导出的 svg。
这部分的目的是将相同的方面元素与类保持在组中,而不是在每个元素上都有类。
一切都很好,除了当我尝试删除元素类时,循环丢失了它,我不知道为什么?
如果有人可以提供帮助,那就太酷了!
这是我的代码的摘录:
//before it, loop through elements with conditions to keep <g></g> as "g"
var myclass;
g.content.forEach(function(inner){
if (inner.hasAttr("class")){
myclass = inner.attr('class').value; // this works as expected
inner.removeAttr('class'); // this mess it all although it is called after (myclass = "")
}
});
g.addAttr({
name: 'class',
value: myclass,
prefix: '',
local: ''
});
解决方案
class
attr 是 a CSSClassList
,所以我猜它不应该删除。这是不久前添加的(v1.0 左右)以更好地处理样式(对于和 之类的插件inlineStyles
)minifyStyles
。看着lib/svgo/css-class-list.js
,我认为inner.attr('class').setClassValue()
(带有空或undefined
参数值)之类的东西应该删除所有类。虽然没有测试。
推荐阅读
- firebase-cloud-messaging - project_id 应该是通知或数据消息的有效负载的一部分吗?
- selenium - selenium-side-runner 是否有在“详细模式”下运行的命令行选项
- java - 读取文件名中带有句点(.)的 S3 文件
- python - len() 函数在我尝试使用时出错
- c - 用 C 语言构建编译器,汇编为 Hex
- java - 试图从 guice 模块访问 spring bean
- python - 在 R 或 Python 中提取 From To 数据集中的所有路由
- python - 如何从 Celery 获取发起任务执行的队列
- javascript - JavaScript 获取和回调函数
- javascript - 将月份添加到数组以说明 0 索引?