У меня есть div, к id="a"
которому может быть прикреплено любое количество классов из нескольких групп. У каждой группы есть определенный префикс. В javascript я не знаю, какой класс из группы находится в div. Я хочу иметь возможность очистить все классы с заданным префиксом, а затем добавить новый. Если я хочу удалить все классы, начинающиеся с «bg», как мне это сделать? Что-то вроде этого, но это действительно работает:
$("#a").removeClass("bg*");
javascript
jquery
css
Брэд
источник
источник
Разделение регулярного выражения на границе слова
\b
- не лучшее решение для этого:или как примесь jQuery:
Обновление ES6 2018:
источник
filter
должна возвращать логическое значение. Это будет работать:var classes = $(e).attr("class").split(" "); $(classes).each(function(i, item) { classes[i] = item.indexOf("prefix") === -1 ? item : "prefix-new"); }); $(e).attr("class", classes.join(" "));
$e.attr('class', $.map($e.attr('class').split(' '), function (klass) { return klass.indexOf(prefix) != 0 ? klass : undefined; }).join(' '));
class="blackRow blackText orangeFace blackHead"
вернется,class=" orangeFace "
если вы побежитеremoveClassPrefix("black");
. Я решил эту проблему путем обрезки результата вот так:el.className = $.trim(classes.join(" "));
.Я написал простой плагин jQuery - alterClass , который удаляет подстановочный класс. При желании также добавлю классы.
источник
Для этого вам не нужен специальный код jQuery. Просто используйте RegExp, чтобы заменить их:
Вы можете изменить это, чтобы поддерживать любой префикс, но более быстрый метод описан выше, поскольку RegExp будет скомпилирован только один раз:
источник
Использование 2 - й подписи из
$.fn.removeClass
:источник
http://www.mail-archive.com/jquery-en@googlegroups.com/msg03998.html говорит:
... и .removeClass () удалит все классы ...
Меня устраивает ;)
ура
источник
Подход, который я бы использовал с использованием простых конструкций jQuery и функций обработки массивов, состоит в том, чтобы объявить функцию, которая принимает идентификатор элемента управления и префикс класса и удаляет все классы. Код прилагается:
Теперь эту функцию можно вызвать из любого места, по нажатию кнопки или из кода:
источник
Для современных браузеров:
источник
Искал решение точно такой же проблемы. Чтобы удалить все классы, начинающиеся с префикса «fontid_» Прочитав эту статью, я написал небольшой плагин, который использую сейчас.
Использование:
источник
Я знаю, что это старый вопрос, но я нашел новое решение и хочу знать, есть ли у него недостатки?
источник
Одной строкой ... Удаляет все классы, соответствующие регулярному выражению someRegExp
источник
Ответ Престола был полезен, но для меня это не совсем сработало. Способ jQuery для выбора объекта по идентификатору не работал. Мне пришлось использовать
вместо того
источник
Я также использую дефис и цифры для имени класса. Итак, моя версия включает '\ d-'
источник
источник
источник