удобная работа с классами

в спеке html5 есть удобный интерфейс classList для работы с классами (и другими подобными строками из разделённых пробелами слов). Естественно, он базируется на том, что яваскрипт-библиотеки давно уже сделали удобным и привычным, поэтому переходник сделать очень легко в качестве развлечения на пять минут:

Element.addMethods({
  getClassList: function(element) {
    element = $(element);
    return element.classList || (element.classList = {
      has:    attach('has'),
      add:    attach('add'),
      remove: attach('remove'),
      toggle: attach('toggle')
    });
    function attach(name) {
      return element[name + 'ClassName'].bind(element);
    }
  }
});

если же очень горит максимально приблизиться к спецификации даже в той части, которую никто никогда не использует, то можно добавить ещё пару методов:

  item:   function(index){ return element.classNames()[index]; },
  length: function(){ return element.classNames().length; },

в целом, конечно, это очень похоже на переходник к не менее удобному dataset, который я делал пару лет назад.

Артемий Трегубенко,
, ,

comments powered by Disqus