Ответ 1
Чтобы удалить все классы из элемента:
$('#foo').removeClass();
Указание аргументов removeClass не удаляет все классы. Таким образом, ваше решение будет:
$('#foo').removeClass().addClass('my_class');
Мне нужно установить класс для элемента на моей странице. С помощью обычного JavaScript я бы написал что-то вроде:
document.getElementById('foo').className = "my_class";
Это просто устанавливает класс, который именно то, что я хочу. Но я использую jQuery на своей странице и поэтому хотел бы сделать это с помощью "jQuery way", так как кажется странным смешивать старый стиль и стиль jQuery. Но jQuery, по-видимому, позволяет вам использовать addClass() или removeClass(), например:
$('#foo').addClass("my_class");
Проблема заключается в том, что он просто добавляет класс к элементу, он не заменяет существующий класс. Означает ли это, что мне нужно отслеживать старый класс и сначала делать removeClass()? Невозможно ли указать jQuery для замены текущего класса независимо от того, что он есть, и просто заменить его на новый?
Чтобы удалить все классы из элемента:
$('#foo').removeClass();
Указание аргументов removeClass не удаляет все классы. Таким образом, ваше решение будет:
$('#foo').removeClass().addClass('my_class');
Задайте атрибут class
напрямую, используя .attr()
:
$('#foo').attr('class', 'my_class');
Вы можете использовать функцию .attr()
следующим образом:
$('#foo').attr('class', 'my_class');
Вы можете использовать это:
$('#foo').attr('class', 'my_class');
Он заменит любой класс "my_class"
$('#foo').removeClass().addClass('my_class');
А, нашел ответ через несколько секунд после того, как я разместил вопрос. Очевидно, мои навыки Google были недостаточными...: - (
Во всяком случае, ответ находится в функции removeClass(). Итак, вы можете сделать:
$('#foo').removeClass().addClass("my_class");
Не может быть проще.
вы можете попробовать использовать . toggleClass()