В объекте есть свойство className, которое содержит список «классов» - слов, разделенных пробелом:
var obj = {
className: 'open menu'
}
Создайте функцию addClass(obj, cls), которая добавляет в список класс cls, но только если его там еще нет:
addClass(obj, 'new'); // obj.className='open menu new' addClass(obj, 'open'); // без изменений (класс уже существует) addClass(obj, 'me'); // obj.className='open menu new me' alert(obj.className); // "open menu new me"
P.S. Ваша функция не должна добавлять лишних пробелов.
Решение
Решение
Решение заключается в превращении obj.className в массив при помощи split.
После этого в нем можно проверить наличие класса, и если нет - добавить.
function addClass(obj, cls) {
var classes = obj.className.split(' ');
for(var i=0; i<classes.length; i++) {
if (classes[i] == cls) return; // класс уже есть
}
classes.push(cls); // добавить
obj.className = classes.join(' '); // и обновить свойство
}
var obj = { className: 'open menu' };
addClass(obj, 'new');
addClass(obj, 'open');
addClass(obj, 'me');
alert(obj.className) // open menu new me
#170