Мне часто нужны функции addClassName и removeClassName для Element
s. Тем не менее, я не осмелюсь расширить родной Element
из-за потенциальных столкновений. Итак, теперь мне интересно, что делать.
Я посмотрел на ExtJS, и он достигает этого как:
var element = document.getElementById('...');
var elem = new Ext.Element(element);
elem.addClass('something');
Мне нравится идея не расширять нативный Element
здесь, но мне не очень нравится идея так сильно обернуть элемент в пользовательский объект, потому что теперь я не могу легко сделать несколько вещей, таких как setAttribute
Например:
var element = document.getElementById('...');
var elem = new Ext.Element(element);
elem.addClass('something');
elem.setAttribute('src', '...'); // Fails
Однако я мог бы сделать:
var element = document.getElementById('...');
element.setAttribute('src', '...');
var elem = new Ext.Element(element);
elem.addClass('something');
но для меня это выглядит не очень хорошо. Вместо этого он выглядит немного сложным.
Существуют ли другие альтернативные способы, которыми я мог бы воспользоваться, кроме обертывания элемента вокруг моего собственного объекта, который предлагает мне эти классные методы?