SVGO пользовательский плагин.Как сохранить значение attr (). Value перед удалением - PullRequest
0 голосов
/ 25 августа 2018

Я пытаюсь создать собственный плагин для SVGO, чтобы очистить пакет и отформатировать 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: ''
});

1 Ответ

0 голосов
/ 25 августа 2018

class attr - это CSSClassList, поэтому я не думаю, что он должен быть удален.Это было добавлено не так давно (v1.0 или около того), чтобы лучше справляться со стилями (для плагинов типа inlineStyles и minifyStyles).Глядя на lib/svgo/css-class-list.js, я думаю, что что-то вроде inner.attr('class').setClassValue() (с пустым или undefined значением параметра) должно удалить все классы.Хотя не проверял.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...