我正在尝试为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: ''
});
答案 0 :(得分:0)
class
attr是CSSClassList
,所以我认为不应删除它。不久前(v1.0左右)添加了该样式,以便更好地处理样式(对于inlineStyles
和minifyStyles
之类的插件)。看lib/svgo/css-class-list.js
,我认为类似inner.attr('class').setClassValue()
(带有空值或undefined
参数值)的东西应该删除所有类。还没有测试。