Мастер-классы по Javascript Екатеринбург Ростов-на-Дону Москва Узнать больше...
Содержание (скрыть) Содержание (показать)

Добавить класс в строку

В объекте есть свойство 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
Наверх

Реклама

Нашли опечатку?

Нашли опечатку на сайте? Что-то кажется странным?
Выделите соответствующий текст и нажмите Ctrl+Enter!

Последние Комментарии

Помоги другим!

Помоги другим узнать о хорошей статье!